
我知道你們中的一些人可能認為這有點偏離主題,但不確定是伺服器的錯誤還是我的設定檔的錯誤,所以...
我製作了 React.js 項目,但它需要伺服器端渲染,所以現在我必須從 CRA 遷移到 next.js 。問題:我必須在 apache Web 伺服器上上傳我的網站,根據我從 google 收集的信息,我需要安裝 node.js 和 pm2 (最新版本),也配置 apache 進行反向代理。我還為pm2創建了ecoystem(我想這是必要的)。目前看起來像這樣:
module.exports = {
apps : [{
name: "nextjs-app",
script: "npm",
args: "run build",
env: {
NODE_ENV: "production"
}
}]
};
但是當我運行 pm2 start npm --start 時,終端機給了我這樣的回應:
pm2 start npm -- start
[PM2] Spawning PM2 daemon with pm2_home=/home/georgianar/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
但是當我嘗試查看進程列表時,沒有進程列表,並且當用戶嘗試進入網站時,站點日誌顯示連接埠 3000 上沒有服務
AH01114: HTTP: failed to make connection to backend: localhost
和
(111)Connection refused: AH00957: http: attempt to connect to 127.0.0.1:3000 (localhost:3000) failed
所以,我不確定是伺服器的錯誤還是我的設定檔導致了這種混亂。有任何想法嗎?
答案1
首先確保您的 package.json 中存在以下命令
"scripts": {
"start": "next start -p 3000"
}
使用以下命令
pm2 start yarn --name "nextjs-app" --interpreter bash -- start
您可以使用列印出詳細的流程信息
pm2 show nextjs-app
將 PM2 配置為在伺服器啟動時啟動,執行下列命令:根
pm2 startup
儲存 pm2 進程清單以便在伺服器重新啟動後重新啟動它們
pm2 save