Nginx静态文件响应POST请求 提示405错误的解决方法_nginx

例1:用linux下的curl命令发送POST请求给Apache服务器上的HTML静态页

复制代码 代码如下:

[root@localhost ~]# curl -d 11=1 http://www.jb51.net/index.html   
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">  
<HTML>  
    <HEAD>  
        <TITLE>405 Method Not Allowed</TITLE>  
    </HEAD>  
    <BODY>  
        <H1>Method Not Allowed</H1>  
        The requested method POST is not allowed for the URL /index.html.<P>  
        <HR>  
        <ADDRESS>Apache/1.3.37 Server at www.jb51.net Port 80</ADDRESS>  
    </BODY>  
</HTML> 

例2:用linux下的curl命令发送POST请求给nginx服务器上的HTML静态页

复制代码 代码如下:

[root@localhost ~]# curl -d 11=1 http://www.jb51.net/index.htm   
<html>  
    <head><title>405 Not Allowed</title></head>  
    <body bgcolor="white">  
        <center><h1>405 Not Allowed</h1></center>  
        <hr><center>nginx/1.2.0</center>  
    </body>  
</html>

但在有些应用中,需要使静态文件能够响应POST请求。
对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:

复制代码 代码如下:

server   
{   
    listen  80;   
    server_name www.jb51.net;   
    index index.html index.htm index.php;   
    root  /opt/htdocs;   
    if (-d $request_filename)   
    {   
        rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;   
    }   
    error_page  405 =200 @405;   
    location @405   
    {   
        root  /opt/htdocs;   
    }   
    location ~ .*\.php?$   
    {   
        include conf/fcgi.conf;        
        fastcgi_pass  127.0.0.1:10080;   
        fastcgi_index index.php;   
    }   
}  

当然也可以修改nginx源代码来解决
修改源代码,重新编译安装nginx
编辑nginx源代码

复制代码 代码如下:

[root@localhost ~]# vim src/http/modules/ngx_http_static_module.c  

修改: 找到下面一段注释掉

复制代码 代码如下:

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

然后按照原来的编译参数,重新编译安装nginx,即可

时间: 2024-09-08 10:14:07

Nginx静态文件响应POST请求 提示405错误的解决方法_nginx的相关文章

使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法_mssql2008

今日使用时代互联的海外空间,sql 2008 无限空间大小,开通账户后,使用sql server management studio 2008 连接数据库,可以链接上,但是无法查看自己的数据库,点击数据库后,提示 无法为该请求检索数据 错误916 解决方法如下 1:点击左侧的数据库,然后到右侧的 "名称"  上面点击右键   出来如图所示的菜单,取消掉策略运行状态和排序规则,再次点击数据库的时候,就能显示所有的数据库以及你自己的数据库了.

ps打开图片显示无法完成请求,因为程序错误的解决方法

  最近使用Photoshop CS5文字工具时出现"无法完成请求,因为程序错误";或者"不能完成请求,因为某种原因阻止文本引擎进行初始化"的错误提示,如果遇到这个问题要怎么操作.下面小编就为大家详细介绍一下ps打开图片显示无法完成请求,因为程序错误的解决方法,一同来看看吧! ps打开图片显示无法完成请求,因为程序错误的解决方法 1.这里就以没有发表的经验中的图片为例来说一下,在经验预览图片中,我们在图片上点击右键,然后在列表中选择另存为. 2.接着在它弹出另存为的

Win8系统无法完成更新提示800F0922错误的解决方法

      Win8系统无法完成更新提示800F0922错误的解决方法.Win8系统下载完更新以后都会等待关机或者下一次启动时安装,但是这个过程中也可能出现错误,从而无法完成更新.这不有位win8系统说无法完成更新,提示错误的代码为800F0922,那么这时候该怎么办呢?下面小编和大家分享三种解决方法,有需要的用户不妨参考本文教程内容来解决. 一.更改DNS设置 1.鼠标移至左下角,单击右键,选择"控制面板"-"网络和Internet"-"网络和共享中心&

电脑安装PS软件提示安装错误的解决方法

电脑安装PS软件提示安装错误的解决方法  1.打开以下位置C:Program Files (x86)Common FilesAdobecaps,删除里面的三个文件; 2.然后再重新打开PS安装程序,就可以成功安装.

win7连接路由器时提示5007错误怎么办 路由器提示5007错误的解决方法教程

win7连接路由器时提示5007错误的解决方法教程 1.首先确定无线路由器的线路连接是正确且正常的; 2.在地址栏中输入192.168.1.1后按回车,打开无线路由器的设置窗口; 3.无线路由器的默认账户和密码都是admin,直接输入然后就可以登陆; 4.在左侧窗口中,点击的络设置,在wan口设置中选静态IP,输入运营商给你的IP子网:255.255.0.0 网关:输入DNS地址,这个DNS的地址是可以查询的; 5.完成后,需要开启自己的无线网络,然后设置密钥,设置完成后点击保存参数,重启无线路

PHP(FastCGI)在Nginx的alias下出现404错误的解决方法_nginx

本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法.分享给大家供大家参考,具体如下: 在Nginx的官方wiki中如下描述 The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root. 在实际使用中alias下面的php返回404,而html确可

nginx提示:500 Internal Server Error错误的解决方法_nginx

现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形式发布. 在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx同时也可以作为7层负载均衡服务器来使用.根据测试结果,Nginx 0.6

登陆vsftp创建文件553 Could not create file错误的解决方法

风信网(ithov.com)原创文章,今天测试Centos登陆vsftp创建文件553 Could not create file报错信息如下: 响应:&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;227 Entering Passive Mode (192,168,1,6,251,12). 命令: LIST 响应: 150 Here comes the directory listing. 响应: 226 Di

Nginx启动常见错误及解决方法_nginx

重新启动服务器,访问web服务发现无法浏览啦!登陆服务器之后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs文件发现的确没有nginx.pid文件 [root@localhost sbin]# ./nginx -s reload nginx: [error]