Nginx的405 not allowed错误解决

这篇具有很好参考价值的文章主要介绍了Nginx的405 not allowed错误解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、问题情况

首先看到的页面是nginx返回的页面,得知错误要从nginx上来解决

<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/1.0.11</center>
</body>
</html>
2、问题原因

因为这里请求的静态文件采用的是post方法,nginx是不允许post访问静态资源。题话外,试着post访问了下www.baidu.com发现页面也是报错,可以试着用get方式访问

3、问题解决

现贴出三种解决方式,供大家选择:

  • 1、将405错误指向成功(我采用的这种方法解决的问题)

静态server下的location加入 error_page 405 =200 $uri;

location / {
        root /usr/share/nginx/html/cashier;
        try_files $uri $uri/ /index.html;
        index index.html index.htm;
        error_page 405 =200  $request_uri;
    }

2、修改nginx下src/http/modules/ngx_http_static_module.c文件

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

以上这一段注释掉,重新编译,将make install编译生成的nginx文件复制到sbin下 重启nginx

  • 3、修改错误界面指向(网上多流传这种方式,但是没有改变请求方法,所以行不通,所以采用以下方法)
upstream static_backend {
    server localhost:80;
}
 
server {
    listen 80;
    # ...
    error_page 405 =200 @405;
    location @405 {
        root /srv/http;
        proxy_method GET;
        proxy_pass http://static_backend;
    }
}
4、拓展

405 Method Not Allowed是一个HTTP 响应状态代码,表示服务器接收并识别了指定的请求HTTP 方法,但服务器拒绝了请求资源的特定方法。此代码响应确认请求的资源有效且存在,但客户端在请求期间使用了不可接受的 HTTP 方法。文章来源地址https://www.toymoban.com/news/detail-511235.html

到了这里,关于Nginx的405 not allowed错误解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python Flask 番外 01: 常见错误405 Method Not Allowed 及网络协议的相关知识

    在我遇到的项目中,由于不了解浏览器的预检机制,我无法检测出程序部署中存在的问题。每次发送跨域请求时,我都收到一个奇怪的405错误。通过调查和排查,我才发现问题出在浏览器发送的OPTIONS请求上。 为了解决这个问题,我需要确保服务器正确配置了响应头,允许跨

    2024年02月03日
    浏览(46)
  • Feign报错Method Not Allowed 405 5种解决方案

    Feign发送Get请求时,采用POJO传递参数 Method Not Allowed 405 这段代码是在 HttpURLConnection 中发现的,jdk原生的http连接请求工具类,原来是因为Feign默认使用的连接工具实现类,所以里面发现只要你有body体对象,就会强制的把get请求转换成POST请求。 量大的话改的东西多 使用@Valida

    2024年02月03日
    浏览(46)
  • Dedecms上传图片提示Upload filetype not allow错误解决方法

    DedeCMS上传图片提示Upload filetype not allow解决办法汇总 解决方法一: 排除php虚拟主机文件写入权限问题(问题无法解决往下看) 解决方法二: 文本编辑器(editplus)打开文件目录: /include/uploadsafe.inc.php (问题无法解决往下看) 查找:(大致在45行) 注意:(修改完上传后更

    2024年02月03日
    浏览(42)
  • 解决 MySQL 连接错误:“Public Key Retrieval is not allowed“

    在使用 JDBC 连接 MySQL 数据库时,可能会遇到一个常见的错误:“Public Key Retrieval is not allowed”。这篇博客将解释这个错误的原因,并提供一种有效的解决方案。 当尝试使用 SSL 连接到 MySQL 数据库时,JDBC 驱动可能需要验证服务器的身份。在这个过程中,如果未配置好 SSL 或者

    2024年02月01日
    浏览(52)
  • postman调用接口报{“detail“:“Method \“DELETE\“ not allowed.“}错误, 解决记录

    项目是python代码开发, urls.py 路由中访问路径代码如下: 对应view视图中代码如下: 上面代码可以看到我要执行的是一个删除操作, 使用的是python drf模型, 自己使用postman调用,界面参数如下: 会发现下面就报出了Method not allowed的错误提示信息, 经过查阅资料有说改什么windows电脑设置

    2024年02月04日
    浏览(45)
  • 微信小程序(web)和django(后端) 异常报错:405 (Method Not Allowed)(env: Windows,mp,1.06.2206020; lib: 2.19.4)

    项目解析: 利用django框架创建一个api接口让小程序可以访问   微信小程序报错 :   GET http://127.0.0.1:8003/api/login/?phone=%E4%BA%8C%E5%A4%A7%E7%88%B7code=%E8%AF%B7%E6%8B%A8%E6%89%93110 405 (Method Not Allowed)(env: Windows,mp,1.06.2206020; lib: 2.19.4) django 报错:\\\"GET /api/login/?phone=YYQQcode=11Q HTTP/1.1\\\" 405 40 Meth

    2024年02月03日
    浏览(37)
  • 解决:nginx: [emerg] “upstream“ directive is not allowed here in /usr/local/nginx/conf/nginx.conf:2

    1.nginx集群报错“upstream”directive is not allow here 错误如下图。  2.启动nginx报错,这里的原因是改了配置文件upstream存的的位置不对所以导致报错的,  3.把upstream 放入http里面保存重启nginx就解决了 如图成功解决报错,启动成功了  

    2024年02月15日
    浏览(48)
  • 关于nginx报403错误的常见几种情况的解决

    在显示开发工程种会遇到各种nginx的报错问题,其中403错误码比较常见,现在汇总遇到的情况。 修改代理的静态路径资源:   修改目录的权限:    chmod -R 777 html/test 输入命令:ps  aux|grep  “nginx:worker process”| awk \\\'{print $1}\\\' 启动用户和nginx工作用户不一致所致 ,显示的用

    2024年02月16日
    浏览(38)
  • “You are not allowed to create a user with GRANT”错误出现原因及解决方法:

    一、出现原因:         8.0之后的mysql不支持 授权的时候就进行用户创建,所以创建 之后才能授权; 二、解决方法; 1、查看正在mysql登录状态的用户:select current_user;   2、创建新用户:create user \\\'用户名\\\'@\\\'localhost\\\' identified by \\\'123456\\\';        3、设置用户权限:grant all on

    2024年02月16日
    浏览(48)
  • Access-Control-Allow-Origin跨域问题,使用Nginx配置来解决

    前提环境:在A服务器,调用B服务器的资源,报错出现找不到请求头Access-Control-Allow-Origin,输入跨域问题, 需要使用配置nginx来处理 例如:A服务器是liunx系统部署了一个java程序,B服务器是本地服务器,A服务器需要请求访问B服务器的资源,可以用nginx代理来请求到B服务器的资

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包