hec*_*tor 1 ruby-on-rails passenger nginx
我在Debian服务器(ip 192.168.1.193)中运行rails应用程序,并且乘客是独立的
$ cd /home/hector/webapps/first
$ passenger start -a 127.0.0.1 -p 3000
Run Code Online (Sandbox Code Playgroud)
我想提供这个应用程序将Nginx与反向代理一起扔在不同的子文件夹中:
http://192.168.1.193/first
Run Code Online (Sandbox Code Playgroud)
我的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;
}
}
...
Run Code Online (Sandbox Code Playgroud)
然后我运行Nginx服务器
$ /opt/nginx/sbin/nginx
Run Code Online (Sandbox Code Playgroud)
使用此配置运行一个rails应用程序似乎一切正常.
但是当我尝试添加我的第二个应用程序时
$ cd /home/hector/webapps/second
$ passenger start -a 127.0.0.1 -p 3001
Run Code Online (Sandbox Code Playgroud)
使用此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;
}
}
…
Run Code Online (Sandbox Code Playgroud)
然后我重新加载Nginx服务器配置
$ /opt/nginx/sbin/nginx -s reload
nginx: [warn] conflicting server name "127.0.0.1" on 0.0.0.0:80, ignored
Run Code Online (Sandbox Code Playgroud)
我收到警告,我无法访问第二个应用程序
http://192.168.1.193/second/
Run Code Online (Sandbox Code Playgroud)
服务器为第二个应用程序返回404,第一个应用程序仍在运行.
我想你只需将两个位置放在同一台服务器上:
server {
listen 80;
server_name 127.0.0.1;
location /first/ {
root /home/hector/webapps/first/public;
passenger_base_uri /first/;
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
}
location /second/ {
root /home/hector/webapps/second/public;
passenger_base_uri /second/;
proxy_pass http://127.0.0.1:3001/;
proxy_set_header Host $host;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |