Nodejsを使用しているWebサイトがあります。問題は、ユーザーが画像をアップロードするとサイトが機能しなくなることです。それは、ファイル変更時にサーバーを再起動するPM2のせいだと思います。この問題を解決する方法。ありがとうございました
PM2には特別なフラグがあります--ignore-watch
国旗。
ファイルを作成してみてくださいprocess.json
app.js/index.jsと同じディレクトリに、次のように貼り付けます。
{
"watch": ["server", "client"],
"ignore_watch" : ["node_modules", "public/images"],
"watch_options": {
"followSymlinks": false
}
}
そのトピックの詳細: http://pm2.keymetrics.io/docs/usage/watch-and-restart/
実際の経験からの簡単な説明
expressjsアプリケーションのルートフォルダーにjsonファイルを作成します。任意の名前を付けることができますが、わかりやすくするためにpm2-process.jsonを使用しました
{
"script": "bin/www",
"watch": true,
"ignore_watch": ["log"],
"watch_options": {
"followSymlinks": false
},
"name": "YOUR_PM2_PROCESS_NAME"
}
ターミナルからpm2サービスを開始するには、エクスプレスアプリケーションのルートフォルダーにあります。
pm2 start pm2-process.json
それでおしまい。本当に簡単です。他にも多くのオプションがありますが、これは最低限の機能です。
フィールドの説明:
完全なドキュメントはここにあります: http://pm2.keymetrics.io/docs/usage/application-declaration/#attributes-available
注:上記の例では、node_modulesフォルダーをignore_watch配列から除外しました。これは、ノードモジュールに変更を加えるgitpullとnpmiの後にpm2でサービスを再起動するためです。ただし、配列の値を編集することで、node_modulesまたはその他のフォルダー(temp、publicなど)を無視するのは簡単です。