Tenho um VPS Digitalocean Ubuntu 24.10 e quero hospedar dois sites usando Nginx.
Um é website-name.com
onde desejo hospedar uma exportação estática de um site Next JS cujo conteúdo copiei para a /var/www/out
pasta e o outro é subdomain.website-name.com
onde desejo hospedar um aplicativo Next JS que está sendo executado em localhost:3000
.
Na pasta /etc/nginx/sites-available/
, tenho um arquivo de configuração chamado myapp
que atua como um proxy para localhost:3000
. Este arquivo de configuração é o seguinte:
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
listen 80;
server_name subdomain.website-name.com;
# Redirect all HTTP requests to HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name subdomain.website-name.com;
ssl_certificate /etc/letsencrypt/live/website-name.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/website-name.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Enable rate limiting
limit_req zone=mylimit burst=20 nodelay;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# Disable buffering for streaming support
proxy_buffering off;
proxy_set_header X-Accel-Buffering no;
}
}
Tenho outro arquivo de configuração na pasta /etc/nginx/sites-available/
chamado website-name.com
para servir o site estático cujo conteúdo está disponível na /var/www/out
pasta. Este arquivo de configuração é o seguinte:
server {
listen 80;
server_name website-name.com;
root /var/www/out;
location / {
try_files $uri $uri.html $uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
}
Peguei essa configuração da página de documentação do Next JS.
Em vez de obter o site estático na URL https://website-name.com
, estou executando o aplicativo Next JS em localhost:3000
.
Na url https://subdomain.website-name.com
estou obtendo o aplicativo Next JS corretamente, conforme necessário.
Não consigo descobrir o que está errado. Alguém pode ajudar?
Nota: Eu costumava certbot
expandir o certificado para website-name.com
também subdomain.website-name.com
(eu segui a resposta desta pergunta para isso). Eu também criei um A
registro para subdomain.website-name.com
.