nginx中HTTP/1.1 405 Method not allowed 的解决方法
时间:2015-05-27 00:31 来源:linux.it.net.cn 作者:IT
环境:nginx 1.0.10
今天调试一个站点时,发现用post方式去请求一个静态页面时,返回 HTTP/1.1 405 Method not allowed 状态,无法正常显示页面。
这里提供下网上的一些解决方法,供大家参考。
方法一
复制代码代码如下:
server
{
listen 80;
server_name test.baidu.com;
index index.html index.htm index.php;
root /www/test.baidu.com;
error_page 405 =200 @405;
location @405
{
root /www/test.baidu.com;
}
location ~ .*.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
备注:用在我的环境无法解决。
方法二
编辑nginx源代码
vi /root/soft/nginx1.0.10/src/http/modules/ngx_http_static_module.c
复制代码代码如下:
注释掉原有的一段话
/*
if (r->method & NGX_HTTP_POST) {
return NGX_HTTP_NOT_ALLOWED;
}
*/
然后按照原来的编译参数 ./configuer make 不用make install 否则会覆盖原来的一些配置文件。
执行
复制代码代码如下:
cp $nginx_dir/sbin/nginx $nginx_dir/sbin/nginx.bak
cp ./objs/nginx $nginx_dir/sbin/nginx
$nginx_dir/sbin/nginx -s reload
备注:用在我的环境无法解决。
方法三
复制代码代码如下:
server
{
listen 80;
server_name test.baidu.com;
index index.html index.htm index.php;
root /www/test.baidu.com;
location /
{
root /www/test.baidu.com;
error_page 405 =200 http://$host$request_uri;
}
location ~ .*.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
备注:用在我的环境可以解决。
(责任编辑:IT)
环境:nginx 1.0.10
方法一
复制代码代码如下:
server
{ listen 80; server_name test.baidu.com; index index.html index.htm index.php; root /www/test.baidu.com; error_page 405 =200 @405; location @405 { root /www/test.baidu.com; } location ~ .*.php?$ { include conf/fcgi.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } } 备注:用在我的环境无法解决。
方法二
复制代码代码如下:
注释掉原有的一段话
/* if (r->method & NGX_HTTP_POST) { return NGX_HTTP_NOT_ALLOWED; } */
然后按照原来的编译参数 ./configuer make 不用make install 否则会覆盖原来的一些配置文件。
复制代码代码如下:
cp $nginx_dir/sbin/nginx $nginx_dir/sbin/nginx.bak
cp ./objs/nginx $nginx_dir/sbin/nginx $nginx_dir/sbin/nginx -s reload 备注:用在我的环境无法解决。
方法三
复制代码代码如下:
server
{ listen 80; server_name test.baidu.com; index index.html index.htm index.php; root /www/test.baidu.com; location / { root /www/test.baidu.com; error_page 405 =200 http://$host$request_uri; } location ~ .*.php?$ { include conf/fcgi.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } } 备注:用在我的环境可以解决。 (责任编辑:IT) |