Apache 서버에서 nextjs(nodejs) 앱을 느리게 로드합니다.

Apache 서버에서 nextjs(nodejs) 앱을 느리게 로드합니다.

면책조항: 모든 시간 측정항목은 개발자 도구를 통해 측정됩니다.

문맥

나는넥스트vps(ovh)에서 호스팅되는 앱입니다.

nextjs 앱 3000pm2.

heroku(무료 플랜)에 앱을 배포하면 모든 것이 잘 작동합니다.

로컬에서는 프로덕션 빌드도 괜찮고 사이트를 로드하는 데 1초 미만이 걸립니다.

이 사이트는 Apache 역방향 프록시 뒤에서 제공됩니다.

내 가상 호스트가 파일을 제공하도록 구성되어 있고( index.html예를 들어) 역방향 프록시처럼 사용되지 않으면 모든 것이 잘 작동합니다.

문제

문제는 내비게이터를 통해 사이트를 로드할 때 사이트를 로드하는 데 +2분이 걸린다는 것입니다.

heroku에서는 모든 것이 작동하고 로컬에서도 작동하는지 확인하세요. 서버 구성이 의심됩니다.

버전 정보

➜ 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

Apache 가상 호스트 구성

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>

앱이 실행 중인지 확인하세요

➜ 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

로그

로그인이 0 pm2 monit이고 .pm2/logs/nextjs-error.log비어 있습니다.

.pm2/logs/nextjs-out.log말하다

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

아파치 로그에는 흥미로운 내용이 없습니다.

포스트 끝

나는 이 문제를 3일 동안 겪었습니다. 어떤 도움이라도 환영합니다.

더 많은 정보를 원하시면 언제든지 문의해 주세요.

관련 정보