nginx反向代理 302
时间: 2023-10-05 11:14:30 浏览: 194
Nginx反向代理
当Nginx作为反向代理服务器时,如果后端服务器返回302状态码(重定向),Nginx默认会将重定向的URL返回给客户端,而不是跟随重定向。为了解决这个问题,需要在Nginx的配置文件中进行相应的设置。
具体而言,可以在Nginx的配置文件中添加以下配置项:
```
server {
...
location ^~ /apiname/ {
proxy_pass http://123.123.1.1:8082/apiname/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_pass_header Set-Cookie;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
client_max_body_size 5120m;
}
location @handle_redirects {
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
```
这样配置后,Nginx会在接收到后端服务器返回的302状态码时,通过设置`proxy_intercept_errors on`使其主动跟随重定向的地址,并将内容返回给客户端。
阅读全文