宝塔用户_qnxizh 发表于 2024-4-22 22:00:45

【已完成】设置了反向代理后,HEAD方法访问都返回405

为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本:
宝塔正式最新版
系统版本:
centos7
问题描述:
RT
设置了反向代理,通过HEAD方法访问指定路径,均返回405,访问非反向代理200
本地访问方向代理的后置服务,用HEAD没问题是200

没有安装nginx防火墙


相关截图(日志、错误):

宝塔用户_qnxizh 发表于 2024-4-22 22:01:43

补充,nginx日志显示,只要是head访问,就 Connection refused

堡塔运维南一 发表于 2024-4-24 10:14:25

您好,检查一下您的反向代理是否正确配置了,是否运行HEAD通过
确保您访问的路径再反向代理和后端服务器上是操作的,然后也有权限
实在不行重启一下服务
如果这些办法不行的话您自己排查一下吧

宝塔用户_qnxizh 发表于 2024-4-24 20:37:50

运维技术南一 发表于 2024-4-24 10:14
您好,检查一下您的反向代理是否正确配置了,是否运行HEAD通过
确保您访问的路径再反向代理和后端服务器上 ...

你好,这是我反向代理的配置(手动配置后自动生成的)

#PROXY-START/bg/

location ^~ /bg/
{
    proxy_pass http://localhost:3001/;
    proxy_set_header Host localhost;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
   
    proxy_set_header Accept-Encoding "";
        sub_filter "/bg" "";
    sub_filter_once off;
   
    set $static_fileAJpFGbP8 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
            set $static_fileAJpFGbP8 1;
            expires 1m;
      }
    if ( $static_fileAJpFGbP8 = 0 )
    {
    add_header Cache-Control no-cache;
    }
}

#PROXY-END/bg/

宝塔用户_qnxizh 发表于 2024-4-24 20:40:26

运维技术南一 发表于 2024-4-24 10:14
您好,检查一下您的反向代理是否正确配置了,是否运行HEAD通过
确保您访问的路径再反向代理和后端服务器上 ...

请问你们那边是否可以内测一下是否可以,因为HEAD请求的情景确实比较少,可能漏测了

重现方法为:
新建静态网站,把子目录/bg反向代理到本地的一个3001端口的本地网站(把/bg抹除),然后用HEAD方法访问其中一个路径

宝塔用户_qnxizh 发表于 2024-4-24 21:28:19

貌似你们新的测试版有纯反向代理,我试试吧

阿珂 发表于 2024-5-8 11:31:49

405状态码通常是使用了不支持的http方法
上面配置文件看起来没什么问题
确保后端服务器能够正确的处理head请求
检查后端服务的日志,结合日志进行一个分析排查

宝塔用户_qnxizh 发表于 2024-5-12 22:21:58

阿珂 发表于 2024-5-8 11:31
405状态码通常是使用了不支持的http方法
上面配置文件看起来没什么问题
确保后端服务器能够正确的处理head ...

你好,感谢回复,问题已解决。

问题原因:我后置的服务器禁了GET方法(没有禁HEAD方法),经过内部测试,宝塔的nginx会把HEAD方法反向代理后变为GET方法,因此被后置服务器拒绝,从而造成405并难以排查。

我已通过修改后置服务器解决此问题,宝塔这边根据需要可以评估,不修改也没问题,主要是我这边的问题。
页: [1]
查看完整版本: 【已完成】设置了反向代理后,HEAD方法访问都返回405