我有2个Rails应用程序运行在同一台服务器上。我想要将domain1.com的请求转发到我的Rails1应用程序,并且domain2.com请求我的Rails2应用程序。我配置我的nginx.conf像这样:一个Nginx,2个应用程序/域
upstream thin1 {
server 0.0.0.0:3000;
server 0.0.0.0:3001;
server 0.0.0.0:3002;
}
upstream thin2 {
server 0.0.0.0:3003;
server 0.0.0.0:3004;
server 0.0.0.0:3005;
}
server {
listen 80;
server_name *.domain1.com;
root /path1/;
location/{
try_files $uri/index.html $uri.html $uri @backend;
}
location @backend {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://thin1;
}
}
server {
listen 80;
server_name *.domain2.com;
root /path2/;
location/{
try_files $uri/index.html $uri.html $uri @backend;
}
location @backend {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://thin2;
}
}
但是,所有的请求(domain1.com和domain2.com)被转发到我的Rails1应用程序。任何想法?
上游thin1和thin2具有相同的服务器地址?你确定它是正确的吗? – freestyler 2012-08-11 06:19:19
@freestyler oops,修正了这个问题。端口是不同的。那有意义吗? – samvermette 2012-08-11 06:26:37
您确定\ @backend命名的位置不在服务器之间共享吗?将文件分割为2可能会有所帮助。或者尝试使用\ @ backend1,\ @ backend2作为命名位置。 – 2012-08-11 09:33:53