当前位置:首页 > 行业动态 > 正文

如何在CentOS上配置HTTPD以实现虚拟主机功能?

在CentOS中配置httpd虚拟主机,需要编辑 /etc/httpd/conf/httpd.conf文件,添加块并指定ServerName、DocumentRoot等参数。

在CentOS系统中配置Apache的虚拟主机是一项常见且重要的任务,它允许在同一台服务器上运行多个网站,本文将详细介绍如何在CentOS 7系统上使用httpd-2.4配置两个基于名称的虚拟主机,并实现特定的访问控制和日志记录功能。

如何在CentOS上配置HTTPD以实现虚拟主机功能?  第1张

一、准备工作

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服务器管理中的一项重要技能,希望本文对你有所帮助,如果在配置过程中遇到任何问题,欢迎随时提问!

0