Nginx静态文件响应POST请求 提示405错误的解决方法
例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,即可
相关推荐
-
Nginx报403 forbidden错误 (13: Permission denied)的解决办法
查看/var/log/nginx/error.log日志显示:xxx 403 forbidden (13: Permission denied)错误.我勒个去~ 引起nginx 403 forbidden通常是三种情况:一是缺少索引文件,二是权限问题,三是SELinux状态. 一.缺少index.html或者index.PHP文件,就是配置文件中index index.html index.htm这行中的指定的文件 server { listen 80; server_name localhos
-
NGINX下配置404错误页面的方法分享
1. 创建自己的404.html页面 2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 3.更改nginx.conf(或单独网站配置文件,例如在nginx -> sites-enabled下的站点配置文件 ) 中在server 区域加入: error_page 404 = /404.html 或者 error_page 404 = http://www.xxx.com/404.html 4.更改后重启nginx,,测试nginx.co
-
为Nginx自定义404,502错误页面的方法
首先打开nginx.conf文件,在fastcgi_temp_file_write_size 128k; 下面添加 fastcgi_intercept_errors on;注意,包括;号 然后在需要定义的站点的里面添加 error_page 404 = /404.htm;例如: 复制代码 代码如下: server { listen 80; server_name www.deepvps.com; index index.html index.htm index.php; error_page 4
-
Nginx中报错:Permission denied与Connection refused的解决
本文主要记录一下各种环境中 nginx 的错误和解决办法,下面话不多说了,来看看详细的介绍吧. 一.13: Permission denied Nginx错误: 2017/04/19 14:46:46 [crit] 4172#0: *671 open() "/data/vhosts/xunlei.com/test/" failed (13: Permission denied), client: 192.168.35.54, server: www.test.com, request:
-
实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询. 在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志.不会有php的error log 信息.nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog. 原因是php-fpm的配
-
Linux服务器nginx访问日志里出现大量http 400错误的请求分析
服务器中的错误记录类似于这种: 124.65.133.242 – – [27/Oct/2014:14:30:51 +0800] "-" 400 0 "-" "-" 124.65.133.242 – – [27/Oct/2014:14:31:45 +0800] "-" 400 0 "-" "-" 124.65.133.242 – – [27/Oct/2014:14:31:45 +0800]
-
解决nginx报错信息 client intended to send too large body: 1331696 bytes
解决nginx报错信息 client intended to send too large body: 1331696 bytes 1,nginx后台error日志报错 2016/02/05 16:23:56 [error] 12024#0: *441106971 connect() failed (111: Connection refused) while connecting to upstream, client: 113.214.1.10, server: localhost, req
-
nginx调用php-fpm出错解决方法和nginx配置详解
装完了nginx和php-5.5,配置好了nginx调用php后,就开始启动php-fpm. 使用下面的命令 复制代码 代码如下: /usr/local/php/sbin/php-fpm 就可以启动了. 在nginx的目录中创建个php的检测脚本index.php 结果在打开http://localhost/index.php 悲剧的发现居然无法打开 .查看日志文件,看了下报错原因 复制代码 代码如下: 2013/07/01 22:34:26 [error] 3214#0: *64 FastCG
-
nginx提示:500 Internal Server Error错误的解决方法
现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形式发布. 在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx同时也可以作为7层负载均衡服务器来使用.根据测试结果,Nginx 0.6
-
Nginx静态文件响应POST请求 提示405错误的解决方法
例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 Meth
-
使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法
今日使用时代互联的海外空间,sql 2008 无限空间大小,开通账户后,使用sql server management studio 2008 连接数据库,可以链接上,但是无法查看自己的数据库,点击数据库后,提示 无法为该请求检索数据 错误916 解决方法如下 1:点击左侧的数据库,然后到右侧的 "名称" 上面点击右键 出来如图所示的菜单,取消掉策略运行状态和排序规则,再次点击数据库的时候,就能显示所有的数据库以及你自己的数据库了.
-
关于javaWeb中405错误的解决方法
今天写了一个servlet,可是一直405报错,开始以为web.xml里面的servlet配置有问题,可是那样的话应该报404错误啊 最后才发现在重写doPost和doGet方法的时候,写成了dopost和doget,因为java对大小写很敏感,故相当于没有重新httpservelt里面的方法. 反思:编程需谨慎!!! 以上这篇关于javaWeb中405错误的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Win8.1下安装Python3.6提示0x80240017错误,如何解决? 定位原因 缺少Windows补丁KB2999226 解决方法 到Microsoft Download Center下载所需要的补丁,但是可能出现此更新不适用于您的计算机的问题,下面提供几个处理的方法: 1.下载的补丁是32位还是64位,跟你的计算机是否匹配(x86代表32位,x64代表64位),若不匹配请回到官网下载相关补丁 2.Win8.1补丁更新必须按照以下顺序:KB2887595.KB2919442.KB2919
-
mysql 提示INNODB错误的解决方法
出现如下语句:The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working: 是mysql配置文件禁掉了这个选项! 关闭mysql数据库 在mysql的安装目录中找到my.ini文件 找到skip-innodb,在前面加上#号 保存,开启mysql数据库!搞定! 这也是开启Mysql数据库InnoDB功能的方法!!
-
MYSQL无法连接 提示10055错误的解决方法
解决方法:(以下内容为本人亲自实践原创) 总结一下,应该是连接数的问题,那么服务器上有些什么连接数: 1.IIS网站服务器中各个网站中有"连接超时时间","会话超时时间": 2.其它程序占用的服务器连接数(如SMTP服务在发信出去的时候可能有很多个连接数) 3.服务器本身的TCP/IP连接数,如xp系统就有个限制,不过server 2003系统似乎没这个限制. 解决操作: 1.我的服务器上面有几个网站,其中有个网站有个自动发信的功能,用"netstat -
-
apache documentroot指向htcdoc之外提示403错误的解决方法
后来发现,原来又是Apache没配置 好,是apache的mod_authz_host模块在起控制作用. 1.如果不启用vhosts 只需修改 httpd.conf 默认Directory节如下,注意红色部分,表示目录/usr/local/apache/htdocs允许所有 主机访问 复制代码 代码如下: <Directory "/usr/local/apache/htdocs"> # # Possible values for the Options directive
-
python打包生成的exe文件运行时提示缺少模块的解决方法
事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyinstaller的使用方法,找到pyinstaller有一个-p参数: 1.设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录. 2.也可以使用多个-p参数来设置多个导入路径 然后我找到bs4模块所在的目录E:\pyth
-
pandas读取csv文件提示不存在的解决方法及原因分析
一般情况是数据文件没有在当前路径,那么它是无法读取数据的.另外,如果路径名包含中文它也是无法读取的. (1)可以选择: import os os.getcwd() 获得当前的工作路径,把你的数据文件放在此路径上就可以了,就可以直接使用pd.read_csv("./_.csv") (2)可以选择: 使用os.chdir(path),path是你的那个数据文件路径 (3)可以选择: 不更改路径,直接调用df=pd.read_csv(U"文件存储的盘(如C盘) :/文件夹/文件名.
-
php提示Failed to write session data错误的解决方法
本文较为详细的分析了php提示Failed to write session data错误的解决方法.分享给大家供大家参考.具体方法如下: 一.问题: 提示信息:Warning: Failed to write session data (files).Please verify that the current setting of session.save_path is correct () in Unknown on line 0 二.解决方法: 代码如下: 复制代码 代码如下: ses
随机推荐
- jQuery链使用指南
- jQuery 一个图片切换的插件
- Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法
- JavaScript数组去重的6个方法
- 半角全角相互转换的js函数
- ajax Suggest类似google的搜索提示效果
- smarty基础之拼接字符串的详解
- JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
- JS 实现倒计时数字时钟效果【附实例代码】
- 当下中国人6大“劣根性”分析
- Linux oracle数据库自动备份自动压缩脚本代码
- C语言合并排序及实例代码
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
- Visual Style中的shellstyle.dll文件修改方法
- PHP中调用C/C++制作的动态链接库的教程
- C#控制台带参数程序源码编写实例讲解
- PHP 5.0对象模型深度探索之绑定
- PHP+mysql防止SQL注入的方法小结
- Python实现DDos攻击实例详解
- nodejs 使用nodejs-websocket模块实现点对点实时通讯