反向代理nginx坏网关

Jos*_*ske 3 nginx centos reverse-proxy

我们在 nginx 上有一个用于竹服务器的反向代理服务器,但它提供了一个 502 错误的网关,但可以从反向代理服务器(两个 Centos)访问。

nginx.conf:

 server {
listen 80;
server_name bamboo.test.foo.com;

access_log  /var/log/nginx/bamboo.test.foo.access.log  main;
  location /bamboo {
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://192.168.10.5:8085;
    client_max_body_size 10M;
   }
proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
    send_timeout                600;
  }
Run Code Online (Sandbox Code Playgroud)

访问日志:

81.82.215.59 - - [07/Dec/2016:16:19:39 +0000] "GET / HTTP/1.1" 502 575 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36" "-"

81.82.215.59 - - [07/Dec/2016:16:19:39 +0000] "GET /favicon.ico HTTP/1.1" 502 575 "http://bamboo.test.foo.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36" "-"
Run Code Online (Sandbox Code Playgroud)

Dev*_*ops 10

我启用了 SELinux,它阻止了 Nginx 进行出站连接。

您可以通过以下方式检查:

# getenforce
Run Code Online (Sandbox Code Playgroud)

如果 SELinux 已打开并且您遇到此问题,您可以尝试将 httpd_can_network_connect 设置为 true,然后重新启动 nginx:

# setsebool -P httpd_can_network_connect true
Run Code Online (Sandbox Code Playgroud)

  • 创建一个帐户只是为了upvote。这修复了它 (3认同)