您的位置:首页 > 运维架构 > Nginx

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

2017-11-08 15:38 423 查看
今天前端同事反应,有个页面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源码不要慌,大胆去试吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx 前端 web服务器