Carregamento lento do aplicativo nextjs (nodejs) no servidor Apache

Carregamento lento do aplicativo nextjs (nodejs) no servidor Apache

Isenção de responsabilidade: todas as métricas de tempo são medidas por meio da ferramenta do desenvolvedor

Contexto

eu tenho umnextjsaplicação alojada num vps (ovh).

O aplicativo nextjs é executado na porta 3000do meu vps via pm2.

Quando implanto o aplicativo no heroku (plano gratuito), tudo funciona bem.

No local, a compilação de produção também está ok e o site leva <1s para carregar.

O site é servido por um proxy reverso Apache.

Se meu vhost estiver configurado para servir um arquivo ( index.htmlpor exemplo) e não for usado como proxy reverso, tudo funcionará bem.

O problema

O problema é: quando carrego o site através de um navegador, o site leva +2 minutos para carregar.

Veja que no heroku tudo funciona (e no local também) suspeito da configuração do meu servidor.

Informações sobre versões

➜ node -v
v10.21.0
➜ yarn -v
1.22.5
➜ pm2 -v
4.5.1
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

Configuração do Apache vhost

http

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName domain.dev
  ServerAlias www.domain.dev
  DocumentRoot /var/www/domain.dev/placeholder-pws
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  RewriteEngine on
  RewriteCond %{SERVER_NAME} =domain.dev [OR]
  RewriteCond %{SERVER_NAME} =www.domain.dev
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

https

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ProxyPreserveHost On
    ServerAdmin [email protected]
    ServerName domain.dev
    ServerAlias www.domain.dev
    # DocumentRoot /var/www/domain.dev/placeholder-pws
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass "/" "http://localhost:3000/"
    ProxyPassReverse "/" "http://localhost:3000/"

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/domain.dev/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/domain.dev/privkey.pem
  </VirtualHost>
</IfModule>

verifique se o aplicativo está em execução

➜ netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::3000                 :::*                    LISTEN      14383/node
➜  ps -p 14383 -o comm=
node

Histórico

Eu tenho 0 login pm2 monite .pm2/logs/nextjs-error.logestá vazio.

.pm2/logs/nextjs-out.logdizer

0|nextjs   | $ next start -p 3000
0|nextjs   | ready - started server on http://localhost:3000

O log do Apache não diz nada de interessante.

pós-fim

Estou com esse problema há 3 dias, qualquer ajuda é bem vinda.

Se quiser mais informações não hesite em perguntar.

informação relacionada