天天看點

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

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;

}

修改一下。

listen 192.168.3.3:80;       #指定Nginx隻占用某個IP的80端口。

listen 192.168.10.3:80;           #如果你伺服器中有多個IP,還可以指定多個。

如果你在Nginx有多個虛拟主機,每一個都需要這麼修改。

 然後輪到 apache 的 httpd.conf

把原來的

Listen 80

改為

Listen 127.0.0.1:80

跟Nginx一樣,指定apache所占用的IP及端口。

儲存退出,重新開機apache即可生效。

如果你 apache 上也有多個虛拟主機。無需好像Nginx那樣逐一修改,隻要都是 80 端口既可。

如:

NameVirtualHost *:80

<VirtualHost *:80>

    ServerAdmin [email protected]

    DocumentRoot /data/web_server/admin

    ServerName www.ABC.com

</VirtualHost>

這樣,Nginx 跟 Apache 就僅會占用指定IP的80端口,不會沖突。

隻要調整一下 Nginx proxy 的參數。

“聰明”應用問題就能解決了。

本文轉自 boy461205160 51CTO部落格,原文連結:http://blog.51cto.com/461205160/1738537

繼續閱讀