Nginx高级玩法

1. Nginx获取自定义消息头

1、nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持:
underscores_in_headers on;

2、比如我们自定义header为X-Real-IP,通过第二个nginx获取该header时需要这样:
$http_x_real_ip; (一律采用小写,而且前面多了个http_)

3、如果需要把自定义header传递到下一个nginx:
如果是在nginx中自定义采用proxy_set_header X_CUSTOM_HEADER $http_host;
如果是在用户请求时自定义的header,例如curl –head -H “X_CUSTOM_HEADER: foo” http://domain.com/api/test,则需要通过proxy_pass_header X_CUSTOM_HEADER来传递

参考:https://blog.csdn.net/xbynet/article/details/51899286

示例:

set $route2_rest "http://openapi_servers/api/router/v2/rest";
if ( $http_method = 'ProxyUpload'){
set $route2_rest "http://192.168.1.1:8989/ClientService/ProxyUpload";
}
proxy_pass $route2_rest;

2. 重定向

/router/rest/10147/baseconfig.flight.push
url重定向到下面这个url:
/router/rest?appkey=10147&method=baseconfig.flight.push

示例:
rewrite ^/router/rest/(.*)/(.*)$ http://openapi.xxxx.com/router/rest?appkey=$1&method=$2 break;

猜你喜欢

转载自www.cnblogs.com/luchuangao/p/8961922.html