8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何控制 ubuntu 服务器上设置的 nginx proxy_pass 的 dns 查询?

JoeF 2月前

27 0

在为在本地主机上运行的私有 Web 应用程序配置公共代理后,我收到 \'502 Bad Gateway\' 错误。nginx 错误日志显示:2024/08/15 13:56:18 [错误] 17674#17674: *3

在为在本地主机上运行的私有 Web 应用程序配置公共代理后,我收到了“502 Bad Gateway”错误。

nginx错误日志显示:

2024/08/15 13:56:18 [错误] 17674#17674:*3 SSL_do_handshake() 失败(SSL:错误:0A000438:SSL 例程::tlsv1 警报内部错误:SSL 警报编号 80)与上游进行 SSL 握手时,客户端:192.168.19.113,服务器:testserver.home.private,请求:\'GET / HTTP/1.1\',上游:\'https://127.0.0.1:8081/\',主机:\'testserver.home.private\'

问题是 nginx 配置中的上游指令是这样的:proxy_pass https://app.internal:8081;

有问题的应用程序需要通过主机名而不是 IP 地址访问。 https://app.internal:8081 https://app.internal:8081

服务器上的 /etc/hosts 文件将 app.internal 正确映射到 127.0.0.1。

我担心如果 nginx 自己解析并获取 IP 地址,代理调用将永远无法工作。有没有办法关闭 nginx dns 查询,以便 nginx 代理查询域名而不是 IP 地址?

帖子版权声明 1、本帖标题:如何控制 ubuntu 服务器上设置的 nginx proxy_pass 的 dns 查询?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由JoeF在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您需要传递 Host 标头,以便应用程序知道要响应 app.internal 。根据您代理的服务器,您可能需要其他标头才能使其工作。

    这是一个简单的 nginx 服务器块,显示添加标头:

    server {
        listen       80;
        listen  [::]:80;
        server_name  app.public;
    
        location / {
            proxy_pass http://app.internal:8081/;
            proxy_set_header Host "app.internal";
        }
    }
    

    更多详细信息:

    • Nginx:何时使用 proxy_set_header Host $host 与 $proxy_host
    • https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header
  • 我很感激这一点,而且看起来这应该可以解决这个问题,但在添加 Host 标头后,我的行为没有变化。日志仍然显示 IP,所以我无法确认它的行为是否符合我的需要。

  • 该应用程序需要额外设置。

    我需要:

    proxy_ssl_server_name 开启;

    不确定它是否是您提到的 Host 标头的补充。

返回
作者最近主题: