2014-09-14 5 views
5

Ich habe zwei Rails-Anwendungen, und ich möchte sie so mit nur einem Domain-Namen Host:Ein Domain-Namen für mehrere Rails-Anwendungen mit Nginx und Unicorn

app1.example.com 
app2.example.com 

Ich habe einen VPS auf digitalen Ozean und ich habe bereits eine App mit Nginx und Unicorn laufen. Dies ist meine nginx Konfigurationsdatei:

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; 
} 

Es scheint, dass ich einen anderen Server Block benötigen eine andere App zu hosten, aber ich weiß nicht, wie nginx zu lassen, die beiden Server Blöcke unterscheiden, da ich nur eine Domäne haben. Irgendwelche Ideen?

Antwort

5

ok, da Sie bereits 2 Subdomains definiert sind, müssen Sie nur das server_name den nginx Blöcke hinzufügen

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; 
} 
Verwandte Themen