2013年7月14日 星期日

[Nginx] 使用Nginx proxy_pass 時保留 host header

原本我使用 nginx 的 proxy_pass 只設定這樣

vim /usr/local/etc/nginx/site-enabled/site
server {
    listen 80;
    server_name my-domain-name.com;
 
    location / {
        proxy_pass  http://hank.local:8210;
    }
}

但是在後端程式從 header 裡判斷 host 會一直找到 hank.local:8210 而不是 my-domain-name.com

後來找到一個方法可以保留 header 到 proxy 裡, 加上 proxy_set_header Host $http_host 即可

server {
    listen 80;
    server_name my-domain-name.com;
 
    location / {
        proxy_pass  http://hank.local:8210;
        proxy_set_header Host $http_host;
    }
}

重新讀取 nginx 設定檔

sudo nginx -s reload
Related Posts Plugin for WordPress, Blogger...