Apache-2.2
我應該使用哪個埠從 nginx 到 Apache 2 的反向代理?
我將 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