在CentOS系统中配置Apache的虚拟主机是一项常见且重要的任务,它允许在同一台服务器上运行多个网站,本文将详细介绍如何在CentOS 7系统上使用httpd-2.4配置两个基于名称的虚拟主机,并实现特定的访问控制和日志记录功能。
一、准备工作
1、安装 Apache HTTP Server:如果尚未安装,可以使用以下命令进行安装:
sudo yum -y install httpd
2、启动并启用 Apache 服务:
sudo systemctl start httpd sudo systemctl enable httpd
3、检查 Apache 版本:
apachectl -V
二、创建目录结构
我们需要为每个虚拟主机创建相应的目录结构,假设我们要配置的两个虚拟主机分别为www1.stuX.com
和www2.stuX.com
,其页面文件目录分别为/web/vhosts/www1
和/web/vhosts/www2
。
sudo mkdir -p /web/vhosts/www1 sudo mkdir -p /web/vhosts/www2 sudo mkdir -p /var/log/httpd/www1 sudo mkdir -p /var/log/httpd/www2
三、配置虚拟主机
编辑 Apache 的主配置文件或包含文件以添加虚拟主机配置,我们可以在/etc/httpd/conf.d/
目录下创建一个新的配置文件,例如vir.conf
。
sudo nano /etc/httpd/conf.d/vir.conf
在文件中添加以下内容:
<VirtualHost *:80> ServerName www1.stuX.com DocumentRoot "/web/vhosts/www1" ErrorLog "/var/log/httpd/www1/error_log" CustomLog "/var/log/httpd/www1/access_log" combined <Location /server-status> SetHandler server-status Require all granted Require not ip 192.168.1 </Location> <Directory "/web/vhosts/www1"> AllowOverride None Require all granted Require not ip 192.168.1 </Directory> </VirtualHost> <VirtualHost *:80> ServerName www2.stuX.com DocumentRoot "/web/vhosts/www2" ErrorLog "/var/log/httpd/www2/error_log" CustomLog "/var/log/httpd/www2/access_log" combined </VirtualHost>
四、配置防火墙和SELinux
确保防火墙允许HTTP流量,并调整SELinux策略以允许Apache访问新目录。
1、开放HTTP端口:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
2、调整SELinux策略:
sudo setsebool -P httpd_can_network_connect 1 sudo setsebool -P httpd_read_user_content 1
五、测试配置并重启服务
1、测试配置文件是否正确:
sudo apachectl configtest
2、重启Apache服务:
sudo systemctl restart httpd
六、验证配置
1、通过浏览器访问:打开浏览器,分别输入http://www1.stuX.com
和http://www2.stuX.com
,查看是否能够正确显示对应的网页内容。
2、查看日志文件:检查/var/log/httpd/www1/access_log
和/var/log/httpd/www1/error_log
,确认是否有正确的日志记录。
七、FAQs
Q1:如何更改虚拟主机的根目录?
A1:要更改虚拟主机的根目录,只需修改配置文件中的DocumentRoot
指令即可,将DocumentRoot "/web/vhosts/www1"
改为DocumentRoot "/new/path/to/www1"
。
Q2:如何允许特定IP地址访问某个虚拟主机?
A2:可以在虚拟主机的配置中使用Require ip
指令来允许特定IP地址访问,只允许IP地址为192.168.1.100
的客户端访问某个虚拟主机:
<Directory "/web/vhosts/www1"> Require ip 192.168.1.100 </Directory>
八、小编有话说
通过以上步骤,我们成功在CentOS 7系统上配置了两个基于名称的虚拟主机,并实现了特定的访问控制和日志记录功能,虚拟主机的配置不仅可以提高服务器的资源利用率,还能为不同的网站提供独立的运行环境,是Web服务器管理中的一项重要技能,希望本文对你有所帮助,如果在配置过程中遇到任何问题,欢迎随时提问!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1404732.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复