nginx配置代理對象,可以修改http的header里面的屬性
http {
server {
listen 8000;
server_name localhost;
location / {
proxy_pass http://springboot;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Request-Url $request_uri;
root /usr/share/nginx/html;
index index.html index.htm;
}
}
通過在http->server->proxy_set_header這個屬性來實現
如果要修改代理對象的host則可以 proxy_set_header HOST 【value】;
其中value是你要設置到代理對象里面的具體的值
這個值可以引用nginx的環境變量
$host
-
當客戶端通過ip訪問nginx,nginx再將請求轉發到被代理對象時,被代理對象獲取到的host實際上時nginx所在宿主機的ip;
-
當客戶端通過域名訪問nginx,被代理對象獲取到的host為客戶端請求的域名
$http_host
-
當客戶端通過ip訪問nginx,nginx再將請求轉發到被代理對象時,被代理對象獲取到的host實際上時nginx所在宿主機的ip:port;192.168.137.160:8000
-
當客戶端通過域名訪問nginx,被代理對象獲取到的host為客戶端請求的域名;port;如:lgm.com:8000
$proxy_host
這個參數經過測試,跟不配置proxy_set_header效果相同
