对Apache的httpd服务的配置进行更改
主配置文件地址:/etc/httpd/conf/httpd.conf
调用配置文件:/etc/httpd/conf.d/*.conf
调用配置文件的意思是因为主配置文件太长(有可能几百行),在里面找其中的一个配置太麻烦,就可以使用调用配置文件,它会在主配置文件读取完成之后,再读取一遍调用配置文件
# 例子 本来要在/etc/httpd/conf/httpd.conf里找到DocumentRoot,修改对应的内容,有了调用配置文件后,直接写配置就行
mkdir /etc/httpd/conf.d/aa.conf
vim /etc/httpd/conf.d/aa.conf
DocumentRoot:'/var/www/myhtml'
Listen:监听地址:端口(80)
ServerName:本站点注册的DNS名称
DocumentRoot:设置网页文件根目录(/var/www/html)
DirectoryIndex:起始页/首页文件名(index.html )
虚拟Web主机
作用:由同一台服务器提供多个不同的Web站点
区分方式:
- 基于域名的虚拟主机
- 基于 端口的虚拟主机 www.aa.com:80 www.aa.com:8000
- 基于IP地址的虚拟主机(不常用)
# 虚拟主机配置格式
<VirtualHost IP地址:端口>
ServerName 此站点的DNS服务
DocumentRoot 此站点的网页根目录
</VirtualHost>
# 例子
vim /etc/httpd/conf.d/aa.conf
<VirtualHost *:80> #* 指本机的所有的IP
ServerName www.aa.com # DNS域名,自己配置的
DocumentRoot /var/www/myhtml
</VirtualHost>
<VirtualHost *:80> #* 指本机的所有的IP
ServerName www.bb.com # 域名不同
DocumentRoot /var/www/myhtml
</VirtualHost>
Listen 8080 #监听端口
<VirtualHost *:8080> #* 指本机的所有的IP,端口不同
ServerName www.bb.com # 域名不同
DocumentRoot /var/www/myhtml
</VirtualHost>
systemctl restart httpd #更改配置后重启下服务
# 这样访问www.aa.com和www.bb.com就是两个不同的网站
#如果有两个虚拟域名,但是用户不用域名访问,二十直接通过地址访问(比如127.0.0.1),这样会默认访问第一个虚拟主机
一旦使用虚拟Web主机功能,所有的页面必须利用虚拟主机呈现
比如我还有一个/var/www/mydemo,我没有给它配置虚拟主机,那么我就访问不了它
Web访问控制
针对网页文件存放的路径进行访问控制,默认继承父目录访问控制
-
进入配置文件/etc/httpd/conf/httpd.conf
-
找到
<Directiory “/var/www”>
Require all granted # 允许所有人
-
注释:Directiory 代表目录 后面双引号的内容代表目录路径
Require all granted 的意思是 允许所有人
此外还有其他权限
Require all denied #拒绝所有人
Require ip 127.0.0.2 #仅允许ip为127.0.0.2访问,127.0.0.2可以改为任意地址
-
添加其他路径的访问权限
# 建议基础配置和权限配置分成不同的配置文件,这样方便管理 vim /etc/httpd/conf.d/bb.conf <Directiory "/webroot"> Require all granted # 允许所有人 </Directiory > :wq systemctl restart httpd # 在根下添加目录会被SELinux监控,所以还是无法访问,这个时候关闭SELinux即可
SELinux添加访问端口
查看端口:semanage port -l (可以跟管道符查单个软件的端口)
semanage port -l | grep http
添加端口:semanage port -a -t http_port_t -t -p tcp 8080
-a : 添加 -t:类型 -p协议