2015-07-28 37 views
0

我nginx.conf代碼nginx反向代理,我如何獲得用戶請求域?

server { 
    listen 80; 
    server_name A.domain.com; 
    location/{ 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass B.domain.com; 
    } 
} 

當用戶請求A.domain.com,我怎樣才能獲得請求的域名?當我使用$_SERVER['HTTP_HOST']時,我得到的是B.domain.com,而不是A.domain.com。

回答

1

$ _SERVER ['HTTP_HOST']給B.domain.com,因爲你已經使用了proxy_pass。
如果你需要A.domain.com設置一個新的標題Via,它的值等於$ host。現在

server { 
    listen 80; 
    server_name A.domain.com; 
    location/{ 
     set $via "1.0 A.domain.com"; 
     if ($http_via) { 
      set $via "$http_via, 1.0 A.domain.com"; 
     } 
     proxy_set_header Via $via; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass B.domain.com; 
    } 
} 

,你可以在你的腳本檢查這個Via頭的區別。