502重定向nginx时出现错误网关

我有一个nginx重定向问题.我在nginx 1.4.4上工作,我有两个单独的重定向.它应该有两种工作方式:
首次重定向:地址address1.com重定向到地址address2.com – >
 地址address2.com重定向到应用程序所在的addres2.com:1234.

第二次重定向直接来自ddress2.com:
– address2.com重定向到address2.com:1234

现在的问题是:
– 从address1.com重定向到address2.com工作,但address2.com到address2.com:port没有.它以502 Bad Gateway错误结束.配置和

日志中的错误如下所示:
来自error.log的信息:

[error] : *386 connect() failed (111: Connection refused) while connecting to upstream, client: {client ip addr}, server:{server name}, request: 

“GET / HTTP / 1.1”,上游:“https://127.0.0.1:{port}”,主机:“{server name}”

Nginx使用存储在conf.d位置的许多.conf文件.

address1.conf(这是有效的):

server {
    ### server port and name ###
    listen          {ip_addr}:443;
    ssl             on;
    server_name     address1.com;

    access_log      /var/log/nginx/address1.log;
    error_log       /var/log/nginx/address1-error.log;

   ssl_certificate      /etc/httpd/ssl/servercert.crt;
   ssl_certificate_key  /etc/httpd/ssl/private/serverkey.key;

    location / {
    rewrite ^ $scheme://address2.com redirect;
}}

address2.com conf文件(这不):

server {
    ### server port and name ###
    listen          {ip_addr}:443;
    ssl             on;
    server_name     address2.com;

    access_log      /var/log/nginx/address2.log;
    error_log       /var/log/nginx/address2-error.log;

    ssl_certificate      /etc/httpd/ssl/servercert.crt;
    ssl_certificate_key  /etc/httpd/ssl/private/serverkey.key;

    proxy_read_timeout   180;

    location / {

            proxy_pass https://127.0.0.1:{port};
            proxy_redirect off;

            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-Ssl  on;
            proxy_set_header   X-Forwarded-Protocol $scheme;
            proxy_set_header   X-Forwarded-HTTPS on;
  }}

有趣的是,我有另一个应用程序addr3.com – > addr3.com:port和重定向工作非常完美.唯一的

address2.conf和address3.conf之间的区别是应用程序工作的端口.每个地址都使用https,端口443在防火墙上打开.

希望我的描述足够详细,如果不是让我知道.
我几天来一直在努力解决这个问题,并且没有找到适合我的任何提示或解决方案.

我很感激任何帮助.

最佳答案
问题可能出在SELinux上.检查它是否与sestatus一起运行.由于某些转发对您有用,因此该命令可能是多余的,但其他人可能需要它:

sudo setsebool -P httpd_can_network_connect 1

要为特定端口启用转发(可能是您的问题),请运行以下命令:

sudo semanage port -a -t http_port_t -p tcp 8088

将8088替换为相关端口.

可能找不到命令semanage.你如何安装它取决于发行版,但你很可能谷歌寻求解决方案.

转载注明原文:502重定向nginx时出现错误网关 - 代码日志