Estou usando um EC2 da AWS com Nginx.
Digamos que eu tenha três nomes de domínio: domínio1.com, domínio2.com, domínio3.com. Digamos também que tenho três aplicações Rails em três portas diferentes: 3000, 3001, 3002.
Todos esses domínios estão vinculados ao meu servidor na porta 80.
Dependendo de qual URL é solicitado, quero que minha porta 80 redirecione a solicitação para a porta correta.
Como devo configurar meu arquivo host virtual? Eu sei que o bloco If existe, mas o Nginx parece não recomendá-lo. Meu plano é ter vários sites no meu EC2.
Não consigo bloquear o servidor na porta do meu aplicativo Rails, pois isso bloquearia o servidor Rails.
Responder1
Dependendo de qualDOMÍNIO(?):
server {
listen 80;
server_name .domain1.com; # Wildcard domain
return 301 $scheme://$host:3000$request_uri;
# use $host above because we use a wildcard domain
}
E repita este bloco de servidor para todos os seus domínios e todos os seus aplicativos/portas Rails
Responder2
Você disse que deseja seus sites em portas diferentes e que deseja que eles sejam vinculados à porta 80. Isso não está claro.
O Nginx pode escutar na porta 80 sites diferentes, basta configurá-lo com domínios diferentes. Por exemplo
server {
server_name www.example.com;
listen 80;
return 301 https://www.example.com$request_uri;
}
server {
server_name www.example.com;
listen 443 ssl https;
root /var/www/site;
// Insert https stuff here
}
server {
server_name www.example2.com;
listen 80;
root /var/www/site2;
}
server {
server_name www.example3.com;
listen 80;
root /var/www/site3;
}
Você também pode executar um balanceador de carga e várias instâncias do nginx, mas isso seria inútil.