近期做一个手机端静态网站,在wcm上网站预览的时候显示正常,网站数据发布到nginx网站服务上后,发现页面有部分不显示:

正常页面:

错误页面:

进入谷歌浏览器的Developer Tools(F12键),进入Network探测

查到错误信息:Request Method:POST    Status Code:405 Not Allowed

网上传抄的添加以下配置的解决办法不可用:

error_page 405 =200 @405;
location @405
{
root /data/jcyweb/hnjcy;
}

成功解决问题的方法:

upstream static_backend {
server localhost:80;
} server {
listen 80; # ... error_page 405 =200 @405;
location @405 {
root /data/jcyweb/hnjcy;
proxy_method GET;
proxy_pass http://static_backend;
}
}

即转换静态文件接收的POST请求到GET方式

最后的配置文件:

#user  nobody;
worker_processes auto; ##允许Nginx进程生成的worker process数 根据cpu内核数自动生成
#error_log logs/error.log
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
use epoll; ##配置事件驱动模型
worker_connections ; ##配置最大连接数
} http {
include mime.types; ##定义MIME-Type
default_type application/octet-stream;
log_format main '$remote_addr - [$time_local] - "$request"' ##定义日志类型,远程地址、时间、请求内容、请求状态
' - $status';
types_hash_max_size ; ##多servername需设置
server_names_hash_bucket_size ;
sendfile on;
server_tokens off; ##关闭默认版本号
keepalive_timeout ; ##定义链接超时时间,防止慢速dos攻击
client_header_timeout ; ##请求头超时时间
client_body_timeout ; ##请求体超时时间
reset_timedout_connection on; ##关闭不响应的客户端连接,释放客户端占有内存
send_timeout ; ##客户端两次读取时间,如果这段时间里没有读取任何数据,nginx就会关闭连接 upstream static_backend {
server localhost:;
} server { ##直接访问IP 反馈500错误
listen ;
location / {
root /data/jcyweb/hnjcy;
index index.html;
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
} error_page /.html;
location = /.html {
root html;
} error_page /50x.html;
location = /50x.html {
root html;
} error_page = @;
location @{
root /data/jcyweb/hnjcy;
proxy_method GET;
proxy_pass http://static_backend;
}
} }

nginx.conf

还有一更好的方法:修改源代码,重新编译安装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: 405 Not Allowed的更多相关文章

  1. nginx 405 not allowed问题的解决

    转载自:  http://www.linuxidc.com/Linux/2012-07/66761.htm Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否 ...

  2. Nginx 405 not allowed最简单快速解决办法

    Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误. server { list ...

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

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

  4. Nginx 1.15.5: 405 Not Allowed

    0x00 事件 在做一个业务跳转时,遇到这个错误 405 Not Allowed,找了挺多资料,多数解决方案是让在 nginx 配置文件中直接添加 error_page 405 =200 $uri; ...

  5. HTTP 请求出现 405 not allowed 的一种解决办法

    问题:http post请求网页会出现405 原因: Apache.IIS.Nginx等绝大多数web服务器,都不允许静态文件响应POST请求 解决:将post请求改为get请求

  6. nginx 405错误

    nginx配置文件加上location / { try_files $uri $uri/ /index.php?$query_string; }

  7. Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。

    例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页 [root@new-host ~]# curl -d 1=1 http://www.sohu.com/inde ...

  8. NGINX不允许向静态文件提交POST方式的请求,否则报405错误(apache中没有出现)

    telnet *.*.*.* 80POST /map/navigation/2011winter/jsn/jsn_20120723_pack/pvf.jsnHTTP/1.1Host:*.*.*.* ( ...

  9. nginx上传模块—nginx upload module-

    一. nginx upload module原理 官方文档: http://www.grid.net.ru/nginx/upload.en.html Nginx upload module通过ngin ...

随机推荐

  1. ORA-01034错误:ORALCE NOT CONNECT

    解决办法: 启动数据库 sqlplus '/as sysdba '  startup;

  2. 【noiOJ】p8206

    02:二分法求函数的零点 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 有函数: f(x) = x5 - 15 * x4+ 85 * x3- 225 * x ...

  3. Linux分区练习(1)

    1.作业描述: 4个主分区. 具体实现过程: 打开Linux,在终端中输入:fdisk -uc /dev/sda 可以查看到                   :Command (m for hel ...

  4. Js中的window.parent ,window.top,window.self 详解

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...

  5. Java教程-Java 程序员们值得一看的好书推荐

    学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资 ...

  6. GO语言练习:值与引用

    1.代码 2.运行 package main import "fmt" func testValue(){ fmt.Println("for value") v ...

  7. 1019 JDBC链接数据库进行修删改查

    package com.liu.test01; import java.sql.Statement; import java.sql.Connection; import java.sql.Drive ...

  8. C# 安装和卸载 Windows Service

    特别注意: 安装Window Service 的时候,一定要用管理员打开命令提示符(cmd) 1. 创建Windows Service 服务项目 2. Service设计界面:右键-->选择安装 ...

  9. 重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统

    假设我们的RAC环境中OCR磁盘和votedisk磁盘全部被破坏,并且都没有备份,那么我们该如何恢复我们的RAC环境.最近简单的办法就是重新初始化我们的ocr盘和votedisk盘,把集群中的所有相关 ...

  10. Linux磁盘及文件系统管理

    在LINUX中我们知道一个很重要的概念,那就是"一切皆文件",这里的一切表示所有在LINUX系统的对象,自然也包括了LINUX中的硬盘设备.在LINUX中所有设备都被抽象成一个文件 ...