linux配置基于端口号的虚拟主机

Linux中配置基于端口号的虚拟主机,需编辑Apache主配置文件(如httpd.conf),为各虚拟主机指定不同监听端口、文档根路径及资源访问权限,配置SELinux允许新端口通信,开放防火墙对应端口,重启服务

Linux配置基于端口号的虚拟主机详解

配置前置条件

  1. 确保Apache服务已安装
    执行命令 yum install httpd -y(CentOS/RHEL)或 apt install apache2 -y(Debian/Ubuntu)。

    linux配置基于端口号的虚拟主机

  2. 查看当前端口占用情况
    使用命令 netstat -tuln | grep :80 检查80端口是否被占用。

配置步骤

  1. 创建网站目录与测试页面
    为每个虚拟主机创建独立的目录,并放置测试文件:

    mkdir -p /var/www/site1 /var/www/site2
    echo "Site1 Content" > /var/www/site1/index.html
    echo "Site2 Content" > /var/www/site2/index.html
  2. 编辑Apache主配置文件
    打开 /etc/httpd/conf/httpd.conf(CentOS)或 /etc/apache2/sites-available/000-default.conf(Ubuntu),添加以下内容:

    linux配置基于端口号的虚拟主机

    # 监听80端口(站点1)
    <VirtualHost :80>
        ServerAdmin admin@site1.com
        DocumentRoot /var/www/site1
        ServerName site1.com
        ErrorLog /var/log/httpd/site1-error.log
        CustomLog /var/log/httpd/site1-access.log
    </VirtualHost>
    # 监听8080端口(站点2)
    <VirtualHost :8080>
        ServerAdmin admin@site2.com
        DocumentRoot /var/www/site2
        ServerName site2.com
        ErrorLog /var/log/httpd/site2-error.log
        CustomLog /var/log/httpd/site2-access.log
    </VirtualHost>
  3. 调整防火墙与SELinux设置

    • 开放端口:若防火墙开启,需允许新端口:
      firewall-cmd --permanent --add-port=8080/tcp
      firewall-cmd --reload
    • 临时关闭SELinux(仅用于测试,生产环境需优化策略):
      setenforce 0
  4. 重启Apache服务
    执行命令 systemctl restart httpd(CentOS)或 systemctl restart apache2(Ubuntu)。

  5. 测试访问

    linux配置基于端口号的虚拟主机

    • 通过浏览器访问 http://服务器IP:80http://服务器IP:8080,确认页面内容正确。
    • 使用 curl 命令验证:
      curl http://localhost:80
      curl http://localhost:8080

常见问题排查

现象 原因 解决方案
页面无法访问 防火墙未开放端口 执行 firewall-cmd --add-port=8080/tcp
SELinux阻止访问 SELinux策略限制新端口 临时关闭 setenforce 0 或配置策略
端口冲突 其他服务占用目标端口 修改端口号或停止冲突服务

相关问题与解答

  1. 如何验证端口号虚拟主机是否配置成功?
    使用 curl http://localhost:80curl http://localhost:8080 检查返回内容是否匹配对应站点的 index.html 文件内容,若需通过域名访问,需在 /etc/hosts 文件中关联域名与端口(如 0.0.1 site1.com:80)。

  2. SELinux导致新端口无法访问如何解决?
    可临时关闭SELinux进行测试(命令:setenforce 0),或永久添加端口规则:

    semanage port -a -t http_port_t -p tcp 8080

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/68742.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月19日 08:58
下一篇 2025年7月19日 09:07

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN