2025 年 4 月

系統

Service Delay

我的 Node.js app 是用 PM2 啟動,MySQL 是放在 Docker。

因為 PM2 啟動 app 比 Docker 快,所以會出現錯誤訊息(資料庫連線錯誤)。

請 ChatGPT 幫忙,延後 PM2 啟動執行 app,方法如下:

先建一個 timer 檔案: /etc/systemd/system/myservice-delay.timer

內容:

[Unit]
Description=Delay start for myservice

[Timer]
OnBootSec=60s
Unit=myservice.service

[Install]
WantedBy=timers.target

這個 Timer 的意思是:開機後 60 秒,才觸發 myservice.service

啟用 Timer:

sudo systemctl daemon-reload
sudo systemctl enable myservice-delay.timer

但有一個地方要注意,原本用 PM2 產生的 service 要停止開機啟動。

sudo systemctl disable myservice
系統

設定 Nginx 只允許區網連線

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  #try_files $uri $uri/ =404;

  allow 192.168.0.0/24;
  deny all;

  proxy_pass http://127.0.0.1:3000;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
}
返回頂端