2014-09-14 24 views
5

Ho due applicazioni Rails e voglio ospitarli con un solo nome di dominio in questo modo:nome Un dominio a Rails più applicazioni con Nginx e Unicorn

app1.example.com 
app2.example.com 

ho un VPS sul mare digitale e ho hai già eseguito un'app con Nginx e Unicorn. Questo è il mio nginx file di configurazione:

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

Sembra ho bisogno di un altro blocco di server per ospitare un'altra applicazione, ma non so come lasciare nginx differenziare i due blocchi del server dal momento che ho un solo dominio. Qualche idea?

risposta

5

ok dal momento che già definita 2 sottodomini, è sufficiente aggiungere il server_name ai blocchi 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; 
}