web网站架构介绍(Apache)
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.confjournalctl -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.240httpd软件有自己的访问控制规则:基于网页文件存放目录
默认继承父目录的访问控制规则
/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>访问出现错误页面,排错思路:
没有网页文件
网页文件名称不是index.html
httpd的访问控制规则拒绝
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.240Listen:指定监控端口
端口:数字,标识协议与进程
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方式进行呈现
端口的优先级最高
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员fancy
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果