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;
通过proxy_pass 也可以:
https://www.jb51.net/article/78746.htm
3.NGINX访问https跳转到http的解决方法
http://www.ttlsa.com/nginx/resolve-https-rewrite-to-http/
4.Nginx支持websocket
https://blog.csdn.net/hotthought/article/details/72912834