Nginx + Apache 公用 80 端口的配置方案。

本文介绍了一种配置方案,使Nginx和Apache可以在同一服务器上同时使用80端口,避免端口冲突。通过指定各自的IP地址和端口,Nginx负责处理静态文件请求并将动态请求反向代理到Apache。此外,还提供了解决某些应用因识别到Apache端口号而产生的问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx 占用 80 端口,过滤静态请求,然后动态请求即 Proxy 到 Apache 的 8080 端口。

Proxy 反向代理的好处是访问的时候,始终就是 80 端口,来访者不会觉察到有任何的区别。
但有的应用确非常“聪明”,识别到 Apache 所位于的端口是 8080 ,就会把相关的超链接都一并加上 :8080 的后续。这么就死定了,还能有正常访问麽?!

有个方法可以解决这事,就是把 apache 也运行在80端口上。
同一台服务器,有Nginx 也有 Apache,2个httpd服务,都是80,不会冲突麽?

下边就是举例方法。

Nginx.conf 的配置中

server {

listen 80;
server_name www.ABC.com;

}

修改一下。

server {

listen 192.168.3.3:80;       #指定Nginx只占用某个IP的80端口。
listen 192.168.10.3:80;           #如果你服务器中有多个IP,还可以指定多个。
server_name www.ABC.com;

}

如果你在Nginx有多个虚拟主机,每一个都需要这么修改。

 然后轮到 apache 的 httpd.conf

把原来的

Listen 80

改为

Listen 127.0.0.1:80

跟Nginx一样,指定apache所占用的IP及端口。
保存退出,重启apache即可生效。
如果你 apache 上也有多个虚拟主机。无需好像Nginx那样逐一修改,只要都是 80 端口既可。
如:
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin hello@abc.com
    DocumentRoot /data/web_server/admin
    ServerName www.ABC.com
</VirtualHost>

这样,Nginx 跟 Apache 就仅会占用指定IP的80端口,不会冲突。
只要调整一下 Nginx proxy 的参数。
“聪明”应用问题就能解决了。



本文转自 boy461205160 51CTO博客,原文链接:http://blog.51cto.com/461205160/1738537

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值