app本地請求是http端口,后來升級https強制301跳轉,設置如下
server {
listen 80;
server name www.XXX.com;
rewrite ^/(.*)$ https://www.XXX.com/$1 permanent;
}
問題描述及原因
強制把http請求跳轉到https,結果發現App有部分的功能不能使用,因為App一共設置了4種請求方式,分別是GET,POST,DELETE和OPTIONS方式,設置301跳轉后所有的請求方法都變成了GET方式,導致一些功能無法正常使用.
http請求方式
問題解決
解決思路也很簡單,所有GET請求直接301跳轉不用管,非GET請求的用proxy_pass來轉發,將參數傳遞給服務,nginx配置如下.
server {
listen 80;
server_name www.XXX.com;
location / {
if ($request_method ~ ^(POST|DELETE|OPTIONS)$) {
proxy_pass https://www.XXX.com;
break ;
}
rewrite ^/(.*)$ https://www.XXX.com/$1 permanent;
}
}