동일한 서버에서 실행중인 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를 (따라 각 서버의 try_files 지시어를 변경하는 것을 잊지 마세요) ? 그것이 틀림 없다고 확신합니까? – freestyler
@freestyler oops, 고정되어 있습니다. 포트가 다릅니다. 말이 돼? – samvermette
이름이 지정된 위치가 서버간에 공유되지 않았습니까? 2로 파일을 분할하면 도움이 될 수 있습니다. 또는 \ @ backend1, \ @ backend2를 명명 된 위치로 사용해보십시오. –