`

Nginx静态文件响应POST请求,提示405错误问题

    博客分类:
  • HTML
 
阅读更多
Apache、IIS、nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
例1:用linux下的curl命令发送POST请求给Apache服务器上的HTML静态页

[root@localhost ~]# curl -d 11=1 http://www.92csz.com/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.92csz.com Port 80</ADDRESS> 
    </BODY> 
</HTML> 
例2:用linux下的curl命令发送POST请求给nginx服务器上的HTML静态页

[root@localhost ~]# curl -d 11=1 http://www.92csz.com/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.92csz.com;  
    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,即可
分享到:
评论

相关推荐

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

    在Web服务器领域,Nginx、Apache和IIS等主流服务通常被设计为不允许静态文件响应POST请求,因为静态文件(如HTML、CSS、JavaScript等)通常不处理用户提交的数据,而是由动态脚本(如PHP、JSP、ASP.NET等)来处理...

    nginx解决跨域问题的实例方法

    2. **前端请求出错**:如果前端使用`axios.post('/api/index2')`发送请求,但收到`404 Not Found`错误,可能是因为后端没有对应的`/index2`接口,或者Nginx配置有误。检查后端是否配置了正确的接口,以及Nginx的`...

    Linux下zendframework框架nginx配置文件

    在Nginx的全局配置文件`nginx.conf`中,我们需要创建一个新的虚拟主机配置,来处理Zend Framework应用的请求。首先,在`http`块内创建一个`server`块,设置监听端口,如`80`,并指定服务器名称或IP地址。然后,配置...

    NGINX conf 配置文件中的变量大全

    其配置文件是实现NGINX功能的核心,而变量则是配置文件中的关键元素,用于动态地响应请求或执行特定操作。 ### 重要变量详解 #### 1. $args $args 变量包含了请求URL中的查询字符串部分,即URL中“?”之后的所有...

    Nginx 上传大文件超时解决办法

    例如,Tomcat有maxPostSize属性可以设置POST请求体的大小限制。 最后,调整完配置后,一定要重启Nginx以使更改生效。同时,进行充分的测试,以确保更改没有引入其他问题。在实际部署过程中,可能需要根据实际情况...

    nginx-1.4.1

    2. **缓存机制**:Nginx可以缓存静态资源,减少对后端服务器的请求,提高网站响应速度。 3. **SSL/TLS支持**:Nginx可以轻松配置为支持HTTPS,提供安全的网络通信。 4. **错误页面自定义**:通过配置文件,Nginx...

    nginx下载安装使用

    2. **Nginx跨域配置**:在Nginx的配置文件中,通过添加`add_header`指令来设置响应头,允许特定的跨域请求。 ```nginx http { server { listen 80; server_name your_domain.com; location /api { proxy_pass...

    1.0版本的nginx源码

    这将有助于提升开发者的系统设计能力,对优化和定制 Nginx 配置、解决性能问题等方面大有裨益。 **1.0版本的Nginx源码** 1.0 版本的 Nginx 源码可能相对较旧,但它是 Nginx 发展历程中的一个重要里程碑。这个版本...

    Nginx 反向代理与负载均衡详解

    在配置Nginx时,还需要注意一些细节,比如选择合适的负载均衡算法、合理设置超时时间、处理好错误页面的重定向、确保后端服务器列表的正确性和响应状态的正确处理,这些都将直接影响到Nginx的运行效率和用户满意度。

    nginx配置优化+负载均衡+动静分离详解

    ` 客户端请求主体读取缓存大小被设置为512KB,这有助于处理较大的POST请求。 ##### 1.5 GZIP压缩 - **GZIP开关**: `gzip on;` 开启了GZIP压缩功能,可以显著减小传输数据量,加快页面加载速度。 - **最小压缩大小*...

    nginx使用文档

    ### Nginx 使用文档 #### 一、Nginx 入门 ##### 1.1 什么是 Nginx? Nginx 是一款高效能的 HTTP 服务器、反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,由俄罗斯程序员 Igor Sysoev 开发。Nginx 能够支持...

    nginx详解及配置说明

    Nginx在高并发和静态内容处理方面表现出色,适用于负载均衡、高并发和高性能Web服务器场景。 #### 二、HTTP协议基础 1. **客户/服务器模式**:HTTP协议基于客户/服务器模型,即客户端发送请求,服务器响应请求。这...

    nginx场景配置与常见错误解析

    ### Nginx场景配置与...通过以上的场景配置与错误解析,可以有效地提高Nginx服务器的性能和安全性,同时也可以帮助运维人员快速定位和解决问题。这些配置不仅适用于特定的业务场景,而且也是构建高效Web服务的基础。

    nginx配置解决前后端的跨越问题

    Nginx是一款高性能的HTTP和反向代理服务器,它可以接收客户端的请求并转发到后端服务器,同时可以处理静态文件、缓存、负载均衡等功能。在处理跨域问题时,Nginx可以通过修改其配置文件(通常为`nginx.conf`)来设置...

    java 静态服务器

    6. **错误处理**:当无法找到请求的资源或出现其他问题时,服务器需要返回合适的HTTP错误状态码。 7. **响应构建**:服务器根据请求生成HTTP响应,包括状态码、头部信息和响应体。响应体通常是静态资源的内容。 在...

    cpp-hinginx实现用C进行Web应用开发的一个Nginx分发

    4. **HTTP协议**:掌握HTTP的基本概念,如请求方法(GET、POST等)、状态码、头信息等,因为这会直接影响到你开发的Web应用如何响应客户端请求。 5. **C++11及更高版本**:cpp-hi-nginx可能使用了C++11或更新的标准...

Global site tag (gtag.js) - Google Analytics