乗客をスタンドアロンとしてDebianサーバー(ip 192.168.1.193)でレールアプリを実行しています
$ cd /home/hector/webapps/first
$ passenger start -a 127.0.0.1 -p 3000
そして、このアプリを提供したいのですが、別のサブフォルダーにリバースプロキシを使用して Nginx をスローします。
http://192.168.1.193/first
私のnginx.confサーバー:
...
server {
listen 80;
server_name 127.0.0.1;
root /home/hector/webapps/first/public;
passenger_base_uri /first/;
location /first/ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
}
...
次に、Nginxサーバーを実行します
$ /opt/nginx/sbin/nginx
この構成で 1 つの Rails アプリを実行すると、すべてが正常に動作するように見えます。
しかし、2 つ目のアプリを追加しようとすると
$ cd /home/hector/webapps/second
$ passenger start -a 127.0.0.1 -p 3001
この nginx.conf ファイルで:
...
server {
listen 80;
server_name 127.0.0.1;
root /home/hector/webapps/first/public;
passenger_base_uri /first/;
location /first/ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name 127.0.0.1;
root /home/hector/webapps/second/public;
passenger_base_uri /second/;
location /second/ {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
}
}
…
Nginxサーバー構成をリロードします
$ /opt/nginx/sbin/nginx -s reload
nginx: [warn] conflicting server name "127.0.0.1" on 0.0.0.0:80, ignored
警告が表示され、2 つ目のアプリにアクセスできません
http://192.168.1.193/second/
サーバーは 2 番目のアプリに対して 404 を返し、最初のアプリはまだ実行中です。