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
proxy_pass
をhttps://...
からhttp://...
に変更することでこれを修正しました。