Nginx静态资源POST请求返回405状态
来源:互联网 发布:ff14男性捏脸数据 编辑:程序博客网 时间:2024/05/29 16:40
http://my.oschina.net/lemonzone2010/blog/174505
同事给了一个json请求,在HTTP接口测试工具中post请求结果返回405状态,get请求则返回数据。搜了一番发现返回405是因为Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求。
试了网上的好几种方法,下面这个受用,通过upstream转换静态文件接收的POST请求到GET方式
upstream static_resource { server localhost:80; } server { listen 80; server_name app.test.com; root /home/app.test.com/; location / { root /home/app.test.com/; index index.shtml index.html; } error_page 405 =200 @405; location @405 { root /home/app.test.com/; proxy_method GET; proxy_pass http://static_resource; }
再次在HTTP接口测试工具测试,发现405变成了404,想了一下,是因为web服务器上配置了多个虚拟主机监听在80端口,upstream默认访问的是一个配置文件中的第一个虚拟主机,而不是我要放行post请求的app.test.com,于是尝试在定义一个虚拟主机监听在81端口,指向app.test.com
server { listen 81; server_name app.test.com; root /home/app.test.com/; location / { root /home/app.test.com/; } }
同时修改upstream中server,再次请求返回状态由405变成200
upstream static_resource { server localhost:81; }
下面备注下网传的方法,此方法我配置后无效
error_page 405 =200 @405; location @405 { root /home/app.test.com; }
此方法配置后返回状态由405变成302
location / { root /home/phone_app/; error_page 405 =200 http://$host$request_uri; index index.shtml index.html; }
此方法未尝试
修改nginx源码目录下src/http/modules/ngx_http_static_module.c,将以下代码注释,按照原来的编译参数,重新编译安装nginx
/* if (r->method & NGX_HTTP_POST) { return NGX_HTTP_NOT_ALLOWED; }*/
或者按照原来的编译参数 ./configuer make 不执行make install
cp $nginx_dir/sbin/nginx $nginx_dir/sbin/nginx.bakcp ./objs/nginx $nginx_dir/sbin/nginx$nginx_dir/sbin/nginx -s reload
0 1
- Nginx静态资源POST请求返回405状态
- Nginx静态资源POST请求返回405 Not Allowed的解决办法
- Nginx静态文件响应POST请求,提示405错误问题
- Nginx静态文件响应POST请求,提示405错误问题
- nginx配置静态资源,访问返回403
- https post请求,Nginx报405错误
- 静态html不支持post请求 405错误
- get post请求资源
- java实现发送HTTP的POST请求,返回数据以及请求状态
- http请求返回状态
- nginx 静态资源服务器
- Nginx静态资源部署
- Nginx静态资源缓存
- nginx 配置静态资源
- Nginx代理静态资源
- nginx 静态资源无法访问
- Nginx 配静态资源
- Nginx 静态资源访问
- HDU 1573 X问题 (中国剩余定理 模线性方程组)
- Android动态加载黑科技 动态创建Activity模式
- (数组练习)冒泡--从小到大--从大到小排列
- ASP网页防SQL注入的代码(二)
- [BZOJ4547]小奇的集合(矩乘)
- Nginx静态资源POST请求返回405状态
- Contest - 多校训练(三)
- js中this的指向
- 一个关于ABAP中AUTHORITY-CHECK的Demo
- header.phtml如何加载购物车的sidebar.phtml
- [二] rehl 6.4 更换 yum源为163的源
- C#判断字符串是否为数字字符串
- Android之生成快捷方式
- QtQuick中使用ListView注意事项