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服务器,都不允许静态文件响应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静态资源POST请求返回405状态
- Nginx静态资源POST请求返回405状态
- Nginx直接post请求获取静态文件 返回405错误的终极解决方法
- Nginx静态资源POST请求返回405状态
- Nginx静态资源POST请求返回405状态
- Nginx 静态页面POST 请求提示405 Not Allowed
- Nginx静态文件响应POST请求 提示405错误的解决方法
- Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
- 使用 RestTemplate 发送 post 请求后返回 json 中 ":" 变成 "=" 的解决办法
- 请求静态文件,返回http状态码405,not allowed
- SpringMVC的静态资源无法请求到的解决办法
- vue项目post请求405报错解决办法。
- Nginx静态文件响应POST请求,提示405错误问题
- Nginx HTTP Post Method: 405 Method not allowed 解决办法
- Nginx静态文件响应POST请求,提示405错误问题
- 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求[原创]
- NGINX反向代理对HTML页面的POST请求返回405状态码解决方法
- Nginx静态文件响应POST请求,提示405错误问题
- nginx(11) 静态分离时,图片资源获取返回403 forbiden的解决方法
- nginx把POST转GET请求解决405问题