关于nginx报错405 not allowed解决方法总结

 更新时间:2023年10月14日 10:20:15   作者:好怪~  
这篇文章主要给大家介绍了关于nginx报错405 not allowed解决方法的相关资料,nginx遇到post请求静态文件会得到405错误,文中通过代码介绍的非常详细,也给出了推荐方法,需要的朋友可以参考下

一、报错原因提示:nginx 解决 405 not allowed错误

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

二、解决方式(四种)

1、将405错误指向成功

静态server下的location加入 error_page 405 =200 $uri;(说白了就是强制将405错误用200代替了)

location / {
        root /usr/locai/nginx/html/kt;
        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、允许nginx的post请求访问静态资源,个人感觉是强制把post请求变get了

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、跨服务调用报错解决(亲测有效)

    server {
        listen       8010;
        server_name  localhost;
        location / {
            root   /usr/local/system/efe/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
            error_page 405 =200 @405;
        location @405 {
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             #ip为后端服务地址
             proxy_pass http://ip+端口$request_uri ;
        }
   }

总结 

到此这篇关于关于nginx报错405 not allowed解决的文章就介绍到这了,更多相关nginx报错405 not allowed内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx服务器中浏览器本地缓存和虚拟机的相关设置

    Nginx服务器中浏览器本地缓存和虚拟机的相关设置

    这篇文章主要介绍了Nginx服务器中浏览器本地缓存和虚拟机的相关设置,是Nginx服务器搭建过程中的基本配置,需要的朋友可以参考下
    2015-08-08
  • Nginx代理Vue项目出现Invalid Host header问题及解决

    Nginx代理Vue项目出现Invalid Host header问题及解决

    在使用Nginx的upstream对Vue项目进行负载均衡时,如果代理地址无法访问目标地址且页面报错InvalidHostheader(无效主机头),可能是由于Vue项目的主机检查配置导致的,解决方法是在Vue项目的webpack.dev.js文件中的devServer下添加disableHostCheck:true,跳过主机检查
    2024-12-12
  • window下使用nginx提供文件下载服务器配置

    window下使用nginx提供文件下载服务器配置

    这篇文章主要介绍了window下使用nginx提供文件下载服务器配置,需要的朋友可以参考下
    2017-06-06
  • nginx配置IP白名单的详细步骤

    nginx配置IP白名单的详细步骤

    在日常运维工作中会碰到这样的需求,设置网站访问只对某些ip开放,其他ip的客户端都不能访问,下面这篇文章主要给大家介绍了关于nginx配置IP白名单的详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 解决Nginx配置静态资源文件404 Not Found问题

    解决Nginx配置静态资源文件404 Not Found问题

    在使用Nginx作为静态资源服务器时,如果配置了根目录root导致404错误,而使用前缀URL配置alias则需要正确处理目录路径,使用alias时要确保目录名后加‘/’,并且在需要时使用root和alias配置,本文介绍Nginx配置静态资源文件404 Not Found问题解决方法,感兴趣的朋友一起看看吧
    2025-03-03
  • Nginx反向代理多个服务器的实现方法

    Nginx反向代理多个服务器的实现方法

    这篇文章主要介绍了Nginx反向代理多个服务器的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 详解用nginx+WordPress搭建个人博客全流程

    详解用nginx+WordPress搭建个人博客全流程

    这篇文章主要介绍了详解用nginx+WordPress搭建个人博客全流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • nginx 不同的访问路径对应项目不同的目录的实现方法

    nginx 不同的访问路径对应项目不同的目录的实现方法

    要在 Nginx 中配置不同的访问路径对应不同的项目目录,可以使用 Nginx 的 location 指令来实现,本文主要介绍了nginx不同的访问路径对应项目不同的目录的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Nginx中upstream模块的具体用法

    Nginx中upstream模块的具体用法

    本文主要介绍了Nginx中upstream模块的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 一次说清Nginx反向代理及参数配置

    一次说清Nginx反向代理及参数配置

    我们在配置服务时常常会用到Nginx来设置反向代理,虽然常用,但是我们真的了解各个参数的意思吗,本文就给大家一次说清Nginx反向代理及参数配置,需要的朋友可以参考下
    2023-05-05

最新评论