2014-09-14 14 views
5

Tôi có hai Rails ứng dụng và tôi muốn lưu trữ chúng chỉ với một tên miền như thế này:tên Một miền với Rails nhiều ứng dụng với Nginx và Unicorn

app1.example.com 
app2.example.com 

Tôi có một VPS trên đại dương kỹ thuật số và tôi có đã chạy một ứng dụng với Nginx và Unicorn. Đây là tập tin cấu hình nginx tôi:

upstream app1{ 
    server unix:/tmp/unicorn.app1.sock fail_timeout=0; 
} 
#upstream app2{ 
# server unix:/tmp/unicorn.app2.sock fail_timeout=0; 
#} 
server{ 
    listen 80; 
    root /var/www/app1/public; 
    try_files $uri/index.html $uri.html $uri @app; 
    location @app{ 
    proxy_pass http://app1; 
    } 
    error_page 500 502 503 504 /500.html; 
} 

Có vẻ như tôi cần một khối máy chủ để lưu trữ ứng dụng khác, nhưng tôi không biết làm thế nào để cho nginx phân biệt hai khối máy chủ kể từ khi tôi chỉ có một tên miền. Bất kỳ ý tưởng?

Trả lời

5

ok kể từ khi bạn đã xác định 2 tên miền phụ, bạn chỉ cần thêm server_name để các khối nginx

upstream app1{ 
    server unix:/tmp/unicorn.app1.sock fail_timeout=0; 
} 
upstream app2{ 
    server unix:/tmp/unicorn.app2.sock fail_timeout=0; 
} 
server{ 
    listen 80; 
    server_name app1.domain.com; 
    root /var/www/app1/public; 
    try_files $uri/index.html $uri.html $uri @app; 
    location @app{ 
    proxy_pass http://app1; 
    } 
    error_page 500 502 503 504 /500.html; 
} 
server{ 
    listen 80; 
    server_name app2.domain.com; 
    root /var/www/app2/public; 
    try_files $uri/index.html $uri.html $uri @app; 
    location @app{ 
    proxy_pass http://app2; 
    } 
    error_page 500 502 503 504 /500.html; 
} 
Các vấn đề liên quan