一、nginx随记
1.1 nginx显示真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
1.2 nginx使用map来作为跳转
需求:
在HK的nginx上配置一个反向内地的,因为域名没备案,
要在 proxy_set_header Host $host; 这个 "$host" 要等于一个在内地已备案的域名。
例如:1.xxx.com --没备案,2.ooo.com --备案
那么我在处理1.xxx.com 的反代时,host头要这样写:proxy_set_header Host 2.ooo.com
以上的基本的情况。
---------------------------------
下面是特殊的情况:
我有多个域名,且被代理的域名要跟二级域名开头一一对应,才能访问到对应的业务,不能随便用一个已备案的 host头代替。
例如:1对1,2对2,3对3,4对4
1.xxx.com -->1.ooo.com
2.xxx.com -->2.ooo.com
3.xxx.com -->3.ooo.com
4.xxx.com -->4.ooo.com
这种情况下,如果用蠢办法就是写多几个server或配置文件。但就是看能不能用Lua写mapping的映射处理掉这个逻辑。
被代理的后端逻辑和对应关系没问题的,只需要考虑在proxy机处理好,把请求转发出去就可以。
答:
map $server_name $porxy_server_name {
1.xxx.com 1.ooo.com
2.xxx.com 2.ooo.com
3.xxx.com 3.ooo.com
}
server {
server_name 1.xxx.com 2.xxx.com 3.xxx.com
location / {
proxy_pass http://$porxy_server_name;
}
}
|