1、nginx后端有做redirect和rewrite时,需要要注意以下问题:
(1)nginx本身使用的是非80和443端口,例如8080,并且与后端的端口不一致,例如后端为8081.并且后端rewrite时使用的是相对地址,那么需要nginx在向后端转发的时候使用host加port的方式,如下所示:
proxy_set_header Host $host:$server_port;
(2)如果nginx监听的是443端口的https而后端为http,后端使用相对路径的重定向时将定向为http。这时需要nginx对后端返回的location进行重写,如下所示:
proxy_redirect http://netease.shenzhoufu.com/ https://netease.shenzhoufu.com/;
就是使用proxy_redirect重写回传的location,可以任意重写。