当前位置:论坛首页 > Linux面板 > 求助

【待反馈】nginx反向代理出错

发表在 Linux面板2023-4-18 14:28 [复制链接] 5 3294

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本 面板 [url=]7.9.8,[/url]nginx 1.22.1
系统版本:CentOS 7.9.2009 x86_64(Py3.7.9)
问题描述:反向代理后访问链接地址报HTTP Status 400 – Bad Request  
相关截图(日志、错误):
1681799180119.jpg
1681799101565.jpg
1681799259508.jpg
目标地址是可以正常访问的

使用道具 举报 只看该作者 回复
发表于 2023-4-18 15:01:17 | 显示全部楼层
您好,检查您的反向代理配置,第4行的反向代理目录跟{} 符号中间没有一个空格,调整下此处的配置。
或者将反向代理目录后的{换行保存然后重新访问看下

还是不行  发表于 2023-4-18 15:14
使用道具 举报 回复 支持 反对
发表于 2023-4-18 15:10:45 | 显示全部楼层
谢花郎 发表于 2023-4-18 15:01
您好,检查您的反向代理配置,第4行的反向代理目录跟{} 符号中间没有一个空格,调整下此处的配置。
或者将 ...


#PROXY-START/f/api/

location /f/api/ {
    proxy_pass http://ip:8084/;
    proxy_set_header Host http://ip:8084;
    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




    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
        expires 1m;
    }
    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 1m;
}

#PROXY-END/f/api/


加上空格也不行
使用道具 举报 回复 支持 反对
发表于 2023-4-18 15:17:53 | 显示全部楼层
宝塔用户_ehaqgx 发表于 2023-4-18 15:10
#PROXY-START/f/api/

location /f/api/ {

如果访问的站点返回"HTTP Status 400 – Bad Request"错误,可能是因为请求中包含了不合法的字符或格式,导致请求被后端服务器拒绝。这种情况下,可以尝试以下面思路进行排查:
1.检查网站配置/Nginx配置文件中是否有错误或不合法的字符,例如不正确的语法或多余的空格等。如果有错误,可以根据错误提示进行修正并重新加载Nginx配置文件
2.在Nginx配置文件中添加以下代码,禁用Nginx对请求的缓存,避免缓存导致请求被拒绝
  1. proxy_cache off;
  2. proxy_cache_bypass $http_pragma;
  3. proxy_cache_revalidate on;
  4. proxy_no_cache $http_pragma;
  5. proxy_cache_valid 200 302 10m;
  6. proxy_cache_valid 404 1m;
复制代码

3如果后端服务器是Tomcat,可以尝试在Tomcat的配置文件中增加以下代码,允许请求中包含特殊字符:
  1. <Connector URIEncoding="UTF-8" ... />
复制代码

4.如果请求中包含特殊字符,可以尝试对请求进行编码,例如使用urlencode函数对请求中的参数进行编码,避免请求被拒绝。
5.如果以上方法都无法解决问题,可以尝试在网站配置文件中增加以下代码,将请求中的特殊字符转义:
  1. rewrite ^/(.*)$ /$1 break;
  2. if ($request_uri ~* "%[0-9a-fA-F]{2}") {
  3.     rewrite .* /break last;
  4. }
复制代码

以上方法中,第5种方法可能会影响性能,所以只有在其他方法都无法解决问题时才应该使用。如果以上方法都无法解决问题,可以尝试使用其他反向代理服务器,或者自行排查其他问题因素

nginx配置还是不行,但是我把后台项目发布成https了  发表于 2023-4-18 17:06
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表