免責事項:すべての時間指標は開発者ツールを通じて測定されます
コンテクスト
私は次jsVPS (OVH) でホストされるアプリ。
nextjs アプリは、3000
経由で私の VPS 上のポートで実行されますpm2
。
Heroku (無料プラン) でアプリをデプロイすると、すべて正常に動作します。
ローカルでは、本番ビルドも問題なく、サイトの読み込みには 1 秒もかかりません。
このサイトは Apache リバース プロキシの背後で提供されます。
私の vhost がファイルを提供するように構成されていて (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 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>
アプリが実行中であることを確認する
➜ 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
Apache ログには何も興味深いことは書かれていません。
投稿終了
この問題に3日間取り組んでいます。どんな助けでも大歓迎です。
さらに詳しい情報をご希望の場合は、お気軽にお問い合わせください。