上一篇                     
               
			  linux配置基于端口号的虚拟主机
- 虚拟主机
- 2025-07-19
- 3676
 在Linux中配置基于端口号的虚拟主机,需编辑Apache主配置文件(如httpd.conf),为各虚拟主机指定不同监听端口、文档根路径及资源访问权限,配置SE
 Linux允许新端口通信,开放防火墙对应端口,重启服务
 
Linux配置基于端口号的虚拟主机详解
配置前置条件
-  确保Apache服务已安装 
 执行命令yum install httpd -y(CentOS/RHEL)或apt install apache2 -y(Debian/Ubuntu)。
-  查看当前端口占用情况 
 使用命令netstat -tuln | grep :80检查80端口是否被占用。
配置步骤
-  创建网站目录与测试页面 
 为每个虚拟主机创建独立的目录,并放置测试文件: mkdir -p /var/www/site1 /var/www/site2 echo "Site1 Content" > /var/www/site1/index.html echo "Site2 Content" > /var/www/site2/index.html 
-  编辑Apache主配置文件 
 打开/etc/httpd/conf/httpd.conf(CentOS)或/etc/apache2/sites-available/000-default.conf(Ubuntu),添加以下内容:# 监听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>
-  调整防火墙与SELinux设置  - 开放端口:若防火墙开启,需允许新端口: firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload 
- 临时关闭SELinux(仅用于测试,生产环境需优化策略): setenforce 0 
 
- 开放端口:若防火墙开启,需允许新端口: 
-  重启Apache服务 
 执行命令systemctl restart httpd(CentOS)或systemctl restart apache2(Ubuntu)。
-  测试访问  - 通过浏览器访问 http://服务器IP:80和http://服务器IP:8080,确认页面内容正确。
- 使用 curl命令验证:curl http://localhost:80 curl http://localhost:8080 
 
- 通过浏览器访问 
常见问题排查
| 现象 | 原因 | 解决方案 | 
|---|---|---|
| 页面无法访问 | 防火墙未开放端口 | 执行 firewall-cmd --add-port=8080/tcp | 
| SELinux阻止访问 | SELinux策略限制新端口 | 临时关闭 setenforce 0或配置策略 | 
| 端口冲突 | 其他服务占用目标端口 | 修改端口号或停止冲突服务 | 
相关问题与解答
-  如何验证端口号虚拟主机是否配置成功? 
 使用curl http://localhost:80和curl http://localhost:8080检查返回内容是否匹配对应站点的index.html文件内容,若需通过域名访问,需在/etc/hosts文件中关联域名与端口(如0.0.1 site1.com:80)。
-  SELinux导致新端口无法访问如何解决? 
 可临时关闭SELinux进行测试(命令:setenforce 0),或永久添加端口规则:semanage port -a -t http_port_t -p tcp 8080 
 
  
			 
			