1. 程式人生 > 其它 >nginx reload無效解決方法

nginx reload無效解決方法

一、 問題出現

更改nginx配置檔案後進行語法檢測

 sudo nginx -t

結果正確, 進行nginx重啟

sudo nginx -s reload

沒有報錯,但發現重啟後新的配置沒有生效

nginx依然指向舊的路徑

檢視nginx服務狀態

sudo service nginx status
或
sudo systemctl status nginx

發現出現如下錯誤

nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument

 

 

 

錯誤原因

經過查詢後發現,這個錯誤是因為nginx和系統之間的競爭引起的。

nginx.pid 檔案是在nginx啟動時建立的檔案,在關閉nginx服務後會消失。

系統在nginx建立該檔案前就想要訪問這個檔案,導致了這個錯誤的產生。

二、 解決方案

1.建立nginx.service.d目錄

在/etc/systemd/system/目錄下建立nginx.service.d資料夾

mkdir /etc/systemd/system/nginx.service.d

2.列印資料到檔案

執行下面的命令

printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override
.conf

3.重新載入daemon服務

systemctl daemon-reload

這將重新執行所有生成器,重新載入所有單元檔案並重新建立整個systemd依賴關係樹。

4.重啟nginx服務

systemctl restart nginx

5.測試

重新測試之前修改過的配置檔案是否生效

發現問題已解決

 

原文地址:https://www.jianshu.com/p/64fba261005d