Nginx反向代理405 PUT Chrome

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (934)

当我尝试通过Nginx反向代理向Tomcat服务器请求时,我得到了405响应。

如果我直接向tomcat服务器请求,它可以从Chrome或Firefox成功运行。但是,如果我向Nginx Proxy请求,我会从Chrome获得405,但可以使用Firefox。

我一直在位置/ foo / {...}下的nginx.conf中使用不同的配置进行测试

我试过了:

error_page 405 =200 $uri;

还有

 add_header "Allow" "GET, POST, HEAD, PUT, DELETE" always;
    add_header "Access-Control-Allow-Methods" "GET, POST, PUT, DELETE, OPTIONS" always;`

location / {
    dav_methods PUT DELETE;
    proxy_pass http://csprocure;
}

我的nginx.conf重定向如下:

upstream genkS {
   server 10.136.113.96:8090;
}

server {

    listen 80;
    server_name $hostname;
    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;
    error_log   /dev/stdout info;
    access_log  /dev/stdout;

    location /demo/ {
        proxy_pass         http://demoS;
        proxy_redirect     http://10.136.113.96/ http://10.136.113.96:8098/;
        proxy_set_header   Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Host $server_name;
        proxy_set_header   X-Forwarded-Proto: https;
    }

我可以添加哪些内容以避免Chrome中的405?

谢谢

提问于
用户回答回答于

可以找找有关白名单HTTP方法的在线解释

这对我有用:

add_header Allow "GET, POST, HEAD, PUT, DELETE" always;

if ( $request_method !~ ^(GET|POST|HEAD|PUT|DELETE)$ ) {
   return 405;
}

..显然,请确保在测试更改之前检查配置nginx -t并重新加载配置nginx -s reload

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 富有想象力的人

    4 粉丝0 提问4 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答

扫码关注云+社区

领取腾讯云代金券