web-dev-qa-db-ja.com

Nginx over Apacheは502 Bad Gatewayを提供します

Apache上でNginxを実行しようとしています。

私の設定では、8080の代わりにポート80をリッスンするようにApacheを設定します。

次に、ポート8080を介して同じドメインへのすべてのリクエストをプロキシするようにNginxを設定します。

upstream app {
    server example.com:8080;
}

server {
    listen 80;
    server_name example.com;

    ssl_protocols TLSv1.2;

    charset utf-8;

    index index.html index.htm index.php;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/example.com-error.log error;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_Host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass https://app/;
        proxy_redirect off;

        # Handle Web Socket connections
        proxy_http_version 1.0;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

次に、Apacheの設定をセットアップします。これは問題なく動作するようです。 http://example.com:808 のサイトに問題なくアクセスできます。

<VirtualHost *>
    DocumentRoot "/home/forge/example.com"
    ServerName example.com
    ServerAlias www.example.com
    CustomLog /var/log/httpd/example_com_access.log common
    ErrorLog /var/log/httpd/example_com_error.log

        <Directory /home/forge/example.com/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

</VirtualHost>

しかし http://example.com/ にアクセスしようとすると、502 Bad Gateway - nginx/1.8.0が返されます。

これを修正する方法はありますか?

これが必要な理由は、Nginxを使用する多くのWebサイトを保持する1つのWebサーバーがありますが、Nginxルールの代わりにApacheルールを実行するサイトの一部(一部のみ)が必要だからです。

Ubuntu 14.04を実行しています。

編集:これは/var/log/nginx/error.logからのログです:

2015/11/06 11:05:27 [emerg] 18176#0: "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/thehostboy.com:71
2015/11/06 11:07:49 [emerg] 18564#0: "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/thehostboy.com:71
2015/11/06 11:23:25 [notice] 21045#0: signal process started
2015/11/06 11:23:25 [alert] 20875#0: *60679 open socket #4 left in connection 9
2015/11/06 11:23:25 [alert] 20875#0: *60680 open socket #41 left in connection 10
2015/11/06 11:23:25 [alert] 20875#0: *60678 open socket #46 left in connection 25
2015/11/06 11:23:25 [alert] 20875#0: *60677 open socket #45 left in connection 26
2015/11/06 11:23:25 [alert] 20875#0: aborting
2015/11/06 11:25:04 [notice] 21184#0: signal process started
2015/11/06 11:25:04 [alert] 21052#0: *97 open socket #3 left in connection 5
2015/11/06 11:25:04 [alert] 21052#0: *98 open socket #36 left in connection 11
2015/11/06 11:25:04 [alert] 21052#0: aborting
2015/11/06 11:27:02 [notice] 21294#0: signal process started
2015/11/06 11:28:39 [notice] 21378#0: signal process started
2
Mark Topper

proxy_passhttps://...からhttp://...に変更することでこれを修正しました。

2
Mark Topper