我最近在我的 digitalocean 服務器上部署了一個 react 靜態應用程式。我所做的只是在 Nginx 組態檔中顯示構建檔案的根目錄。它運行良好。
現在我正在嘗試在我的服務器上托管一個 NextJS 應用程式。root /var/www/html/NextJSTestApp/.next我展示了我什至嘗試過的根目錄root /var/www/html/NextJSTestApp/node_modules
當我運行npm run build構建完成然后我嘗試訪問我的服務器時它顯示“502 Bad Gateway”
但是當我運行npm start
站點影像時
,應用程式正在顯示
我能做些什么來一直運行它?我正在使用數字海洋液滴。
uj5u.com熱心網友回復:
在將 NextJS 作為節點應用程式運行時(例如下一次啟動),您需要將 nginx 設定為使用proxy_pass,而不是將其指向根目錄(省略 root 指令)。
示例 nginx 位置塊
server {
server_name example.com;
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
ssl_certificate /etc/nginx/certs/fullchain.cer;
ssl_certificate_key /etc/nginx/certs/fullchain.key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:8000; //your next app
}
}
uj5u.com熱心網友回復:
首先,關閉終端或離開 bash 后,手動運行next start不會保留該程序。為了讓它在后臺運行,您可以在啟動命令的末尾使用 &&(下一個啟動 &&)或創建一個 systemd 檔案(推薦)。
其次,一旦你完成了在后臺運行的 nextJs,你可以繼續設定一個代理傳遞到你的 Web 服務器(nginx,apache ...)
uj5u.com熱心網友回復:
我找到了這個解決方案。為了運行這個專案背景,我使用了 pm2。
sudo npm install -g pm2
然后轉到我的專案檔案夾cd website/
pm2 start --name=website npm -- start
然后pm2 startup systemd
我跟著這個教程
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/481608.html
上一篇:git合并后角度專案損壞
下一篇:發布“舊”版本的包?
