有两台Nginx服务器,A服务器需要反向代理B服务器,需要通过自定义HTTP头内容,A服务器中配置如下:
http {
upstream tdt_b_server {
server 192.168.1.10:8080 weight=1 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name example.com *.example.com;
location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#custom http header
proxy_set_header X-Custom-Network chinatel-intranet;
proxy_pass http://tdt_b_server;
proxy_redirect off;
}
}
}
通过proxy_set_header设置自定义的HTTP头,名字可以自定义。
在被反向代理的B服务器上可以通过 $host_x-custom-network
获取到自定义的头内容,以 $host_
开头,后面的HTTP头名称,可以在nginx日志中打印来查看内容,B服务器nginx.conf关键代码如下:
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$host_x-custom-network"';
access_log logs/access.log main;
}
然后可以通过if进行条件判断,来设置不同的配置。