通过XAMPP在Windows Server部署上线网站遇端口冲突求助
解决Windows Server上XAMPP Apache(81端口)绑定域名访问的问题
下面是几个可行的解决方案,根据你的实际情况选择:
方案1:用IIS做反向代理(推荐,无需停止IIS)
因为你的服务器上IIS已经占用80/443端口,直接利用IIS做反向代理,把域名的80/443请求转发到Apache的81/4433端口:
- 先在IIS中安装URL重写和**应用程序请求路由(ARR)**模块:通过服务器管理器的「添加角色和功能」,在Web服务器的角色服务里勾选这两个模块;或者直接在IIS管理器的「模块」界面中安装。
- 新建一个空的IIS网站,绑定你的域名和80端口(HTTP),如果需要HTTPS,再绑定443端口并配置好SSL证书。
- 配置反向代理规则:
- 打开该IIS网站的「URL重写」功能,点击「添加规则」,选择「反向代理」。
- 在目标框输入
http://localhost:81(对应HTTP请求),如果要处理HTTPS,再添加一条规则指向https://localhost:4433。 - 回到IIS服务器级别,找到「应用程序请求路由」,启用「代理」功能。
- 测试:直接访问你的域名,IIS会自动把请求转发到Apache的81端口,无需在地址栏加端口号。
方案2:调整端口,让Apache监听80/443端口
如果你可以停止或调整IIS的端口,直接把Apache改成默认端口:
- 先处理IIS:要么停止IIS服务(执行命令
net stop w3svc),要么在IIS管理器中把所有占用80/443端口的网站,改成其他端口(比如8080/4430)。 - 修改Apache配置:
- 打开XAMPP的
apache/conf/httpd.conf文件,找到Listen 81,改成Listen 80。 - 打开
apache/conf/extra/httpd-ssl.conf文件,找到Listen 4433,改成Listen 443。
- 打开XAMPP的
- 重启Apache服务,此时域名直接访问80端口就会指向你的XAMPP网站。
方案3:用Windows端口转发工具(轻量方案)
通过Windows自带的netsh命令,把80端口的请求转发到Apache的81端口,443转发到4433:
- 以管理员身份打开命令提示符,执行以下命令:
# 转发HTTP 80端口到81 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=127.0.0.1 connectport=81 # 转发HTTPS 443端口到4433 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=443 connectaddress=127.0.0.1 connectport=4433 - 确保Windows防火墙允许80和443端口的入站连接(在防火墙高级设置中添加规则,允许TCP 80/443端口的外部访问)。
- 注意:这个方案需要先解除IIS对80/443端口的占用,否则会出现端口冲突。
内容的提问来源于stack exchange,提问作者Arjun Ghimire
相关产品推荐
相关产品推荐

