web通信基础概念

基于B/S结构的网页服务

-S:服务端提供网页

-B:浏览器下载并显示网页

/etc/httpd/conf/httpd.conf  (httpd配置目录)
/var/www/html/index.html    (默认网页效果)
主配置文件:/etc/apache2/apache2.conf
虚拟主机配置:/etc/apache2/sites-available/
默认网站根目录:/var/www/html/
修改端口号  sudo vim /etc/apache2/ports.conf

journalctl -xe #查看httpd服务启动失败原因

修改服务的功能 /etc/httpd/conf/httpd.conf

DocumentRoot:指定网页文件存放路径(默认/var/www/html) 指定网页文件根目录(起始点)

虚拟机A
mkdir   /var/www/myweb
echo  wo  shi  myweb   >  /var/www/myweb/index.html
vim  /etc/httpd/conf/httpd.conf
找到并修改   DocumentRoot   "/var/www/myweb"
systemctl   restart   httpd   #重启
curl   192.168.88.240

httpd软件有自己的访问控制规则:基于网页文件存放目录

默认继承父目录的访问控制规则

/var/www/html #/var/www 目录有配置,所有客户端都可以访问

/webroot 根目录拒绝所有客户端访问,webroot继承根目录拒绝所有客户端访问

总结:默认情况下网页文件,必须在/var/www目录下,才能允许访问

当子目录没有规则,默认继承上一级目录规则
针对此目录有单独配置,则不继承上一级目录规则
vim  /etc/httpd/conf/httpd.conf  
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied    #拒绝所有客户端访问
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted   #允许所有客户端访问
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

访问出现错误页面,排错思路:

  1. 没有网页文件

  2. 网页文件名称不是index.html

  3. httpd的访问控制规则拒绝

  4. SELinux的没有关闭

mkdir    /webroot  
echo wo shi  webroot   >  /webroot/index.html
vim  /etc/httpd/conf/httpd.conf
添加:
DocumentRoot    "/webroot"  #修改原有配置
<Directory /webroot>
        Require all granted      #允许所有客户端访问
</Directory>

systemctl   restsrt  httpd    #重启服务
curl  192.168.88.240  #  wo shi  webroot

mkdir   /webroot/abc
echo   wo  shi  ABC    >  /webroot/abc/index.html
curl    192.168.88.240/abc/

调用配置文件的使用

主配置文件:/etc/httpd/conf/httpd.conf
调用配置文件:/etc/httpd/conf.d/*.conf
vim  /etc/httpd/conf.d/haha.conf
DocumentRoot   /var/www/cbd
mkdir   /var/www/cbd
echo  wo  shi  cbd  >   /var/www/cbd/index.html
systemctl   restart   httpd
curl   192.168.88.240

Listen:指定监控端口

端口:数字,标识协议与进程

http协议默认端口80

建议自定义端口时大于1024,端口的极限是65535

修改后访问需要加端口号,如果多人访问不建议更改80端口,或者修改后使用反向代理

vim  /etc/httpd/conf.d/haha.conf
DocumentRoot   /var/www/cbd
Listen  8000
Listen  9000
systemctl  restart   httpd
curl    193.168.88.240:80    #成功
curl    193.168.88.240:8000 #成功
curl    193.168.88.240:9000   #成功

mkdir  /var/www/cbd/test
echo  wo  shi   TEST  >  /var/www/cbd/test/index.html
curl   192.168.88.240:8000/test/

虚拟Web主机 由同一台服务器,提供多个不同的web站点

vim   /etc/httpd/conf.d/xixi.conf

<VirtualHost 	*:80>   #在所有IP地址监听80
ServerName   www.qq.com    #网站的域名
DocumentRoot   /var/www/qq  #网页文件路径
</VirtualHost>

Listen 8000
<VirtualHost 	*:8000>   #在所有IP地址监听80
ServerName   www.qq.com    #网站的域名
DocumentRoot   /var/www/lol #网页文件路径
</VirtualHost>

<VirtualHost 	*:80>   #在所有IP地址监听80
ServerName   www.lol.com    #网站的域名
DocumentRoot   /var/www/lol #网页文件路径
</VirtualHost>

mkdir  /var/www/qq    /var/www/lol
echo  wo  shi  QQ  >   /var/www/qq/index.html
echo  wo  shi  LOL >   /var/www/lol/index.html
systemctl    restart   httpd
curl   www.qq.com  # 访问失败   
/etc/hosts:直接提供域名解析,只为本机提供解析
vim   /etc/hosts    
192.168.88.240     www.qq.com     www.lol.com

curl   www.qq.com   #访问通过  wo shi QQ
curl   www.qq.com:8080   #访问通过    wo shi LOL
curl   www.lol.com   #访问通过  wo shi LOL
一旦使用虚拟web主机功能,所有的网站都必须使用虚拟web方式进行呈现
端口的优先级最高