特网科技为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。

当前位置:首页 > 行业资讯 > 虚拟主机 > 正文内容

使用firewalld配置防火墙规则

2026-03-24虚拟主机1010

海外云服务器 40个地区可选            亚太云服务器 香港 日本 韩国

云虚拟主机 个人和企业网站的理想选择            俄罗斯电商外贸虚拟主机 赠送SSL证书

美国云虚拟主机 助力出海企业低成本上云             拨号云主机


在当今高度分布式的Web服务架构中,Apache HTTP Server 作为最成熟、最广泛使用的开源Web服务器之一,凭借其卓越的稳定性、灵活的模块化设计和强大的虚拟主机功能,持续为全球数百万网站提供坚实支撑。“虚拟主机(Virtual Host)”机制允许我们在单台物理或虚拟服务器上托管多个独立站点;而“端口定制化配置”则进一步扩展了服务隔离性、安全性和灵活性。

本文将系统性地讲解如何在Apache中配置基于不同端口号的虚拟主机,从基础概念到实战部署,再到排错调试,助你轻松构建“一机多站、多端并行”的高效服务架构。


什么是虚拟主机?为何要结合端口号使用?

虚拟主机简述

虚拟主机(Virtual Host),顾名思义,是指在同一台服务器硬件资源上,通过域名、IP地址或端口号的不同组合,运行多个彼此独立的网站应用,Apache支持两种主流模式:

  • 基于名称的虚拟主机(Name-based Virtual Host):通过ServerName区分站点,适用于共享同一IP的情况。
  • 基于IP的虚拟主机(IP-based Virtual Host):通过绑定不同IP地址实现隔离,适合拥有多个公网IP的环境。

无论哪种模式,均可叠加“端口维度”,实现更精细的服务划分——即“基于端口的虚拟主机”。

为什么要指定不同的端口号?

  1. 环境隔离
    将开发、测试、预发布环境部署于不同端口(如8080、8081),避免相互干扰,便于并行调试。

  2. 规避端口冲突
    当服务器需同时运行Nginx、Node.js、Tomcat等其他服务时,自定义端口能有效防止默认80/443被占用。

  3. 提升安全性
    非标准端口(如8080、8443、9000等)不易被自动化脚本扫描攻击,可作为轻量级“隐蔽层”,降低暴露风险。

  4. 特殊用途服务部署
    如内部管理后台、API网关、监控面板等,可通过专属端口对外提供受限访问。


实战演练:配置两个站点分别监听8080与8081端口

假设目标:

  • site1.example.com → 监听端口 8080
  • site2.example.com → 监听端口 8081
  • 站点根目录分别为 /var/www/site1/var/www/site2

第一步:确认Apache已启用虚拟主机模块

编辑主配置文件(路径因发行版而异):

  • Ubuntu/Debian: /etc/apache2/apache2.conf
  • CentOS/RHEL: /etc/httpd/conf/httpd.conf

确保以下模块已加载(取消注释或添加):

LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule rewrite_module modules/mod_rewrite.so   # 可选,用于重写规则

💡 提示:部分系统默认已启用,可通过 apache2ctl -M | grep vhosthttpd -M | grep vhost 验证。


第二步:声明监听端口

在端口配置文件中新增监听指令:

  • Ubuntu/Debian: 编辑 /etc/apache2/ports.conf
  • CentOS/RHEL: 在 httpd.conf 中直接追加
Listen 8080
Listen 8081

⚠️ 注意:若启用了SSL,还需对应配置 Listen 8443 并设置 <VirtualHost *:8443>


第三步:创建并配置虚拟主机文件

创建站点配置文件

推荐将每个站点独立成 .conf 文件存放于 sites-available/ 目录:

sudo nano /etc/apache2/sites-available/site1.conf

如下:

<VirtualHost *:8080>
    ServerName site1.example.com
    ServerAlias www.site1.example.com
    DocumentRoot /var/www/site1
    <Directory /var/www/site1>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    # 日志配置
    ErrorLog ${APACHE_LOG_DIR}/site1_error.log
    CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
    # 可选:启用压缩、缓存等性能优化
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
    </IfModule>
</VirtualHost>

同理,创建 site2.conf

<VirtualHost *:8081>
    ServerName site2.example.com
    ServerAlias www.site2.example.com
    DocumentRoot /var/www/site2
    <Directory /var/www/site2>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/site2_error.log
    CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>

第四步:启用站点并重启服务

Ubuntu/Debian 用户执行:

sudo a2ensite site1.conf
sudo a2ensite site2.conf
sudo systemctl reload apache2   # 推荐先reload,无误后再restart
# 或 sudo systemctl restart apache2

CentOS/RHEL 用户需手动软链接或复制至 conf.d/

sudo ln -s /etc/httpd/sites-available/site1.conf /etc/httpd/conf.d/
sudo ln -s /etc/httpd/sites-available/site2.conf /etc/httpd/conf.d/
sudo systemctl restart httpd

第五步:配置防火墙开放端口

根据系统选择命令:

Ubuntu(UFW):

sudo ufw allow 8080/tcp
sudo ufw allow 8081/tcp
sudo ufw reload

CentOS/RHEL(firewalld):

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --reload

📌 若使用云服务器(如阿里云、AWS),还需在控制台安全组中放行对应端口!


第六步:测试访问

在浏览器或终端中访问:

http://your-server-ip:8080
http://your-server-ip:8081

应分别看到各自站点首页内容,建议配合本地 hosts 文件临时解析域名进行测试:

168.1.100 site1.example.com
192.168.1.100 site2.example.com

常见问题排查与调试技巧

遇到无法访问?请按以下步骤逐一检查:

检查SELinux策略(仅限CentOS/RHEL)

非标准HTTP端口可能被SELinux拦截:

# 查看当前允许的HTTP端口
sudo semanage port -l | grep http
# 添加新端口到HTTP策略
sudo semanage port -a -t http_port_t -p tcp 8080
sudo semanage port -a -t http_port_t -p tcp 8081
# 验证是否添加成功
sudo semanage port -l | grep http_port_t

若未安装 semanage,请先执行:sudo yum install policycoreutils-python-utils


语法检测与错误日志

# 检查Apache配置语法
sudo apache2ctl configtest     # Ubuntu
sudo httpd -t                  # CentOS
# 实时查看错误日志
sudo tail -f /var/log/apache2/error.log      # Ubuntu
sudo tail -f /var/log/httpd/error_log        # CentOS

端口监听状态验证

sudo netstat -tuln | grep ':8080\|:8081'
# 或
sudo ss -tuln | grep ':8080\|:8081'

确保Apache进程确实在监听目标端口。


进阶建议与最佳实践

命名规范:虚拟主机文件建议以“域名_端口.conf”命名,如 site1_8080.conf,便于后期维护。

权限控制:确保DocumentRoot目录权限

扫描二维码推送至手机访问。

版权声明:本文由特网科技发布,如需转载请注明出处。

本文链接:https://www.56dr.com/mation/97248.html

分享给朋友:

“使用firewalld配置防火墙规则” 的相关文章

免费服务器IP和端口的探索之旅

在互联网的世界里,免费服务器IP和端口是一个吸引人的话题。这些IP地址和端口可以帮助我们快速搭建各种网络应用和服务。通过选择合适的IP地址和端口,我们可以实现远程访问、数据传输、游戏连接等多种功能。了解并掌握这些IP地址和端口,不仅可以满足个人需求,还可以促进技术创新和发展。在数字化时代,免费服务器...

外国服务器IP地址的探索与应用

探寻全球网络中的通信堡垒在数字化时代,互联网如同一条无形的河流,连接着世界各地的人们,国外服务器扮演着至关重要的角色,它们为用户提供安全、稳定的数据传输服务,本文将深入探讨国外服务器IP地址的构成、特点以及在现代社会中的重要性。概述1、什么是国外服务器IP地址? - 国外服务器IP地址是指那些位...

阿里云服务器租赁价格和如何选择合适的服务器

阿里云服务器租赁的价格通常在几百到几千元不等,具体取决于服务器规格、网络带宽和是否需要额外的安全服务。选择合适的服务器时,应考虑预算、性能需求、安全性要求以及对数据备份的需求。建议查看阿里云官方网站或使用官方推荐的服务提供商进行比较和咨询。在当今数字化时代,企业对高性能计算的需求日益增长,作为云计算...

云服务器使用成本计算与管理

租用云服务器是一种常见的IT资源租赁方式。它提供了按使用量付费的服务,用户只需支付实际使用的资源成本,从而降低运营成本。/cloud-server-cost-analysis在云计算时代,租用云服务器已成为企业、个人和开发者获取互联网资源的重要方式,如何合理地评估和管理租用云服务器的费用成为了关键问...

服务器租用1000元,开启你的数字世界新篇章!

服务器租用1000元开启数字世界新篇章。在这个数字化的时代,数据是我们生活的重要组成部分,无论是工作、学习还是娱乐,都需要大量的计算和存储能力,而服务器,作为处理这些数据的关键设备,成为了我们不可或缺的基础设施。随着互联网技术的发展,服务器租赁的价格也在逐渐降低,如果你正在寻找一个性价比高的服务器租...

市场行情与技术影响

近期市场行情总体平稳,但部分品种受到技术因素的影响。比特币价格持续上涨,而黄金价格则有所波动。在股票市场方面,科技股表现强劲,而传统行业则面临挑战。全球经济形势也对市场产生了影响,一些国家和地区出现了经济衰退的风险。在数字世界中,服务器作为核心计算设备,其价格波动对于企业的决策至关重要,本文将探讨服...