Nginx静态资源POST请求返回405 Not Allowed的解决办法

今天前端同事反应,有个页面post请求返回405状态,get请求则返回数据。

原因是Nginx等绝大多数web服务器,都不允许静态文件响应POST请求。

查看了好多博客,3种解决办法中只有最后一种有效,记录一下。

编译安装的nginx源码目录下,src/http/modules/ngx_http_static_module.c中,将以下代码注释

/*  

if (r->method & NGX_HTTP_POST) { 

 return NGX_HTTP_NOT_ALLOWED; 

}

*/

然后通过nginx -V 找出原来的编译参数,重新编译就好。编译完成后make,不用执行make  install.

直接重命名/usr/local/nginx/sbin/nginx为/usr/local/nginx/sbin/nginx.old

cp  objs/nginx  /usr/local/nginx/sbin/nginx

kill -USR2 `cat /usr/local/webserver/nginx/nginx.pid`    更新配置文件

kill -QUIT `cat /usr/local/webserver/nginx/nginx.pid.oldbin`    优雅的关闭

完美解决了。

听到要改nginx源码不要慌,大胆去试吧!


猜你喜欢

转载自blog.csdn.net/weixin_35815578/article/details/78479489