Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1044712
  • 博文数量: 157
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1388
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-09 15:37
文章分类

全部博文(157)

文章存档

2023年(9)

2022年(2)

2021年(18)

2020年(7)

2017年(13)

2016年(53)

2015年(55)

我的朋友

分类: 服务器与存储

2016-05-31 15:06:46

今天遇到一个问题,向我的nginx发送post请求总是返回405,后来才知道nginx默认是不响应post请求的
curl -X POST -d "1111111" "" -voa  -k

解决方法:让nginx接纳post请求
转载于:http://blog.chinaunix.net/uid-26438019-id-3298389.html

在实际应用nginx的过程中,可能需要通过post请求静态页面;默认的nginx上,是决绝通过post方式访问静态页面;
在网上查看了一些解决办法,通过重定向error_page 来达到目的;在实际运用中,有时无法生效;
下面告诉一个终极的解决办法:
修改源码;

本文环境:
nginx: 1.2.2

tar zxvf nginx-1.2.2.tar.gz
cd ./nginx-1.2.2/src/http/modules/

vim ngx_http_static_module.c
找到如下行(大约在文件的第206行):

if (r->method & NGX_HTTP_POST) {
     return NGX_HTTP_NOT_ALLOWED;
}

将这段屏蔽掉;
/*
if (r->method & NGX_HTTP_POST) {
     return NGX_HTTP_NOT_ALLOWED;
}
*/

保存推出;

注意我开始用的是每行首#进行注释,但是make时候报了错,后来改成/*   */进行注释就没问题了,真有点怪



在使用之前编译nginx的参数(通过/usr/local/nginx1.7.11/sbin/nginx -V查询),重新编译nginx版本(执行.configure --nginx编译参数,ke),并进行替换(注意不要make install)即可。
阅读(13159) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~