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.bak
cp ./objs/nginx   $nginx_dir/sbin/nginx
$nginx_dir/sbin/nginx -s reload

Nginx静态资源POST请求返回405状态相关推荐

  1. Nginx 静态页面POST 请求提示405 Not Allowed

    从git上cp了一个开源的前端框架lay Ajax版本,用Nginx配置访问首页没问题 nginx配置如下: server{listen 80;server_name adminhtml.com;in ...

  2. 请求nginx静态资源报403

    [README] 请求nginx静态资源报403: [1]原因 静态资源防止在某个家目录下,如 /root 目录下 [2] 解决方法1 nginx.conf 文件没有指定用户 # user nobod ...

  3. Nginx静态资源部署

    目录 Nginx静态资源概述 Nginx静态资源的配置指令 listen指令 server_name指令 location指令 设置请求资源的目录root / alias index指令 error_ ...

  4. Nginx静态资源优化、压缩、缓存

    这一篇记录一下Nginx压缩缓存相关的指令,各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟.多谢! 目录 优化 sendfile tcp_nopush tc ...

  5. nginx静态资源 性能_如何欺骗生产环境资源以进行性能调整

    nginx静态资源 性能 Performance tuning is one of the most important and critical tasks that the SQL Server ...

  6. Nginx 静态资源

    静态资源类型 Nginx 作为静态资源 Web 服务器部署配置, 传输⾮常的⾼效, 常常⽤于静态资源处理, 请求, 动静分离 ⾮服务器动态运⾏⽣成的⽂件属于静态资源 类型 种类 浏览器端渲染 HTML ...

  7. Nginx静态资源优化配置之tcp_nopush和tcp_nodelay

    (2)tcp_nopush:该指令必须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输'效率' 语法 tcp_nopush on|off; 默认值 tcp_nopush off; 位置 ...

  8. nginx ---- 静态资源部署

    Nginx静态资源概述 上网去搜索访问资源对于我们来说并不陌生,通过浏览器发送一个HTTP请求实现从客户端发送请求到服务器端获取所需要内容后并把内容回显展示在页面的一个过程.这个时候,我们所请 求的内 ...

  9. nginx 静态资源优化配置

    前言 在很多公司,nginx不仅作为反向代理服务器使用,而且承载着一部分静态资源存储的功能,比如将图片等静态资源放在nginx目录下,比较熟悉的是,在一些前后端分离的网站中,某些情况下,为了能充分提升 ...

最新文章

  1. SpringBoot 深度调优,让你的项目飞起来!
  2. 使用rem适配不同屏幕的移动设备
  3. 【五线谱】音高表示 ( 低音谱号 | C1 36 音符音高表示 | C2 48 音符音高表示 | C3 60 音符音高表示 )
  4. http request乱码的真相
  5. React事件系统研究总结
  6. double小数点后最多几位_30年前很火的零食,00后最多吃过2种,全吃过的至少是“叔叔辈”...
  7. C++map容器-排序
  8. hashmap java_Java – HashMap详细说明
  9. LCD显示实验----STM32f4--HAL
  10. java面向服务架构_面向服务的体系架构 SOA(一) --- 基于TCP、HTTP协议的RPC
  11. Android Studio 导入项目时容易出现的问题汇总
  12. Flex与Servlet之间数据的交互
  13. 华为harmonyos官方微博账号,华为 EMUI 官方微信和微博更名为 HarmonyOS
  14. 【BP数据预测】基于matlab狼群算法优化BP神经网络数据预测【含Matlab源码 658期】
  15. 苹果iBoot源代码
  16. 信息收集 | 利用Google搜索语法进行Google Hacking
  17. 服务器安全值得深思的几点问题?
  18. vue 替换路由地址参数(动态修改路由参数)
  19. 计算机英语断句,英语断句方法
  20. Python认证现已生效,并且其他freeCodeCamp 7.0版课程更新

热门文章

  1. JAVA中pin什么意思_银行业加密算法,PIN相关算法(java-国密)
  2. npm ERR! code ERR_STREAM_WRITE_AFTER_END npm install 报错实力踩坑npm,自从用了npm之后项目构建和插件管理确实方便了很多,但也是被坑的不要不要的
  3. linux clock命令,Centos Linux下使用date/clock/hwclock命令设置系统和硬件时间
  4. android 计算圆周率方法,android Math的使用
  5. 平台如何限制ip流量_社区团购平台如何通过地推获得更多流量?
  6. python进阶教程day_Python进阶教程m5–时间,日期
  7. 刚学java.一天应该写多少代码_对于刚学编程不久的人,每天码代码是怎么码?...
  8. avs3 ts格式封装 标准_Go time.RFC3339 时间格式化
  9. linux内核内存溢出检测,linux下有什么检测内存溢出的工具
  10. c# 找出目录下的所有子目录_C#遍历文件夹,其实只需要一句话!