之前Nginx的配置是这样的
location ~ ^/(api|oss) {
rewrite ^/(.*)$ /goview/$1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://xx.xx.xx.xx:20235;
}
报错误,这个问题的原因就是rewrite重写后请求的返回类型变成text/html了,而nginx不允许post之类请求返回静态资源。
修改如下之后就好了
location ~ ^/(api|oss) {
rewrite ^/(.*)$ /goview/$1 break;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://xx.xx.xx.xx:20235;
}
就是在rewrite 后面加了个break ,但是看break 的说明没搞明白啥情况
实例演示Nginx重写(Rewrite)类型区别https://blog.csdn.net/lxh_worldpeace/article/details/106228270
不过这个地方又说了可以这么用
nginx rewrite proxy_pass breakhttps://juejin.cn/s/nginx%20rewrite%20proxy_pass%20break