Apache-2.2
將 Nginx 反向代理指向不同 VM 上的虛擬主機
我有 1 台執行 Nginx 的虛擬機將同一 IP 上不同域(子域)的傳入請求分發到不同的虛擬機。
我的一個例子的 Nginx 配置文件現在是非常基本的。
server { listen 80; listen [::]:80; server_name cloud.something.xyz; location / { proxy_pass http://192.168.1.77; } }
這指向正確的 VM,但它顯示該 VM 上的預設 apache 頁面,而不是所需的虛擬主機 (cloud.something.xyz)。
如果我直接將埠轉發到http://192.168.1.77,那麼子域/啟用的站點會按預期工作,所以我認為我的 Apache 配置很好,問題出在 Nginx 配置方面。
proxy_pass http://192.168.1.77/folderloacation
和類似的嘗試只會給我配置錯誤和其他神秘的結果為了讓代理使用正確的虛擬主機而不是指向其他虛擬機預設頁面,我缺少什麼?
我更了解基於 Apache 的代理配置,但您缺少的是 HTTP 主機標頭的保留。
在您的設置中,主機標頭不會發送到您配置的代理。
您必須使用名為http://wiki.nginx.org/HttpProxyModule#proxy_set_header的模組來保存它
可以在這裡找到適當的答案:https ://stackoverflow.com/questions/5834025/how-to-preserve-request-url-with-nginx-proxy-pass