CentOS7配置httpd虚拟主机步骤详解

1 下载量 43 浏览量 更新于2024-08-29 收藏 149KB PDF 举报
"该教程是关于在CentOS7操作系统上,使用httpd-2.4配置两个基于域名的虚拟主机的详细步骤。主要任务包括创建www1.stuX.com和www2.stuX.com两个虚拟主机,分别指向不同的网页文件目录,并设定相应的错误日志和访问日志路径。此外,还需使www1.stuX.com能够显示服务器状态信息,但仅限特定用户访问。同时,要阻止来自192.168.1.0/24网络的主机访问www1.stuX.com。教程中还展示了如何检查系统及httpd服务的版本以及启动和验证httpd服务的运行状态。" 在配置CentOS7的httpd虚拟主机时,首先需要确保系统版本和httpd服务的版本是兼容的。在这个例子中,系统是CentOS Linux release 7.3.1611 (Core),而httpd的版本为Apache/2.4.6。启动并检查httpd服务的状态是初步的验证步骤,使用`systemctl start httpd.service`来启动服务,然后使用`systemctl status httpd.service`确认服务是否正在运行。 接着,要创建两个基于名称的虚拟主机,我们需要编辑httpd的配置文件,通常是`/etc/httpd/conf/httpd.conf`或`/etc/httpd/conf.d/vhosts.conf`。每个虚拟主机的配置块应包含`VirtualHost`指令,指定服务器监听的IP地址和端口,以及对应的域名。例如: ```apacheconf <VirtualHost *:80> ServerName www1.stuX.com DocumentRoot /web/vhosts/www1 ErrorLog /var/log/httpd/www1/error_log CustomLog /var/log/httpd/www1/access_log common </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 common </VirtualHost> ``` 为了实现www1.stuX.com的服务器状态信息输出,可以启用`mod_status`模块,并在相应虚拟主机的配置中添加`ExtendedStatus On`,然后设置一个基本授权,只允许特定用户访问`/server-status`页面: ```apacheconf <Location "/server-status"> SetHandler server-status ExtendedStatus On Order deny,allow Deny from all Allow from 127.0.0.1 AuthType Basic AuthName "Server Status" AuthUserFile /path/to/htpasswd Require valid-user </Location> ``` 这里,`/path/to/htpasswd`是存放用户名和密码的文件,需要使用`htpasswd`命令创建和管理。 最后,为了阻止192.168.1.0/24网络的主机访问www1.stuX.com,可以使用`<Location>`或`<Directory>`指令结合`Order`、`Deny`和`Allow`来实现IP访问控制: ```apacheconf <Location /> Order allow,deny Allow from all Deny from 192.168.1.0/24 </Location> ``` 配置完成后,保存文件并重启httpd服务以应用更改。使用`systemctl restart httpd.service`命令来完成重启。然后,通过访问指定的域名和检查日志文件,可以验证虚拟主机配置是否成功。如果遇到问题,可以查阅httpd的官方文档或者在线社区寻求帮助。