Apache-2.2

我應該使用哪個埠從 nginx 到 Apache 2 的反向代理?

  • June 15, 2010

我將 nginx 設置為事實上的埠80。我想在 Apache2 上設置 django+mod_wsgi。我擔心如果我離開 Apache280會導致衝突。

避免頭痛并將Apache更改為不同的埠會更好嗎?

server {
   listen 80;
   server_name work.domain.org;

   access_log /www/work.domain.org/log/access.log;
   error_log /www/work.domain.org/log/error.log;

   location / {
       proxy_pass http://127.0.0.1:8080/;
       proxy_redirect off;

       proxy_set_header   Host             $host;
       proxy_set_header   X-Real-IP        $remote_addr;
       proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
       proxy_set_header        X-Magic-Header "secret";
       client_max_body_size       10m;
   }
}

通常,您希望反向代理偵聽客戶端將要連接的埠。因此,在這種情況下,您希望 nginx 位於埠 80 上。Apache 埠確實無關緊要,只要該埠在具有相同 IP 的同一台伺服器上沒有用處,它就可以是埠 80 。

因此,如果您的反向代理機器也沒有執行 Apache,那麼它們都可能是 80。您還可以在主機上有一個輔助 IP,並讓 Apache 綁定到該 IP/埠對,並讓 nginx 和 Apache 在埠上偵聽80 在同一台機器上(只是不同的 IP)。

例如(nc 監聽指定的 IP 和埠):

#Add Secondary IP:
$ sudo ifconfig eth0:1 192.168.2.1 netmask 255.255.255.0
# Listen on primary IP:
$ nc -l -p 20200 -s 192.168.1.2
#Listen on Secondary IP in another Terminal
$ nc -l -p 20200 -s 192.168.2.1
Show in Yet another Terminal
$ sudo netstat -tapnl | grep 20200 
tcp        0      0 192.168.2.1:20200       0.0.0.0:*               LISTEN      440/nc          
tcp        0      0 192.168.254.82:20200    0.0.0.0:*               LISTEN      428/nc 

引用自:https://serverfault.com/questions/151127