1. 程式人生 > 實用技巧 >0.4 uwsgi和nginx部署常見問題及解決

0.4 uwsgi和nginx部署常見問題及解決

​ 前言:

​ 最近部署nginx+uwsgi+django 總是報錯 寫一個報錯錦集

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

1.nginx錯誤

啟動nginx報錯 一般就是配置檔案寫錯了 需要細心排查一下

解決思路:檢視nginx的error.log日誌

tail -f /var/log/nginx/error.log

開啟error日誌可以清晰的看的是哪一行報錯 我們可以去對應的配置檔案中去修改。。。

vim /etc/nginx/conf.d/django.conf

開啟django.conf我們可以看到我們的配置檔案哪一行少一個空格。。需要細心啊~

修改之後我們在執行:wq儲存再重新啟動nginx(systemctl restart nginx)就可以啦

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

在瀏覽器中訪問抱錯 也就是nginx可以啟動 但是在瀏覽器中訪問路由會報錯

比如:Internal Server Error 500/404

解決思路:檢視nginx接入access.log日誌

cd /home/worker/opwf_project/uwsgi_conf

tail -f * tail -f * 可以看到最新的報錯資訊

開啟access.log日誌會發現報錯資訊。。可以清晰的看到是埠被佔用 找到對應埠 kill -9 xxx 殺死就 OK了。

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

2. 端口占用衝突問題


就是上方哪個圖片 Address already in use 埠被佔用

(syl) root@dev:uwsgi_conf# netstat -anptu | grep 8000 # 檢視埠是否佔用 
kill -9 68279	#殺死對應程序號

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

  • uwsgi每次修改程式碼後最好都重啟一下
uwsgi --ini uwsgi.ini # 啟動 (syl) root@dev:uwsgi_conf# 
ps -ef|grep uwsgi	#檢視uwsgi是否啟動

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

3. nginx許可權問題,無法開啟vue部署檔案


這個報錯屬實很讓人頭突 ,啟動nginx 沒有問題,排查了配置檔案沒有問題 在瀏覽器中訪問就是報錯。。。。讓人很頭疼啊。。。最後聽別人講是許可權問題 崩潰。。。

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

檢視nginx的error.log日誌

2020/12/11 09:08:59 [error] 4697#4697: *33 open() "/root/桌 面/opwf_project/opwf/static/rest_framework/js/default.js" failed (13: Permission denied), client: 192.168.56.1, server: 192.168.56.100, request: "GET /static/rest_framework/js/default.js HTTP/1.1", host: "192.168.56.100:8888", referrer: "http://192.168.56.100:8888/user/user/"

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

1、nginx使用者和root使用者是兩個獨立的使用者,nginx使用者不能操作root使用者下的目錄,如果想要操作root使用者下的檔案,需要對齊授權操作

2、如果想使用nginx使用者,可以把專案目錄放到nginx使用者目錄下,nginx使用者的目錄一般在/usr/share/nginx/html,這樣的話也是比較方便的。

3、使用root使用者啟動nginx,root使用者擁有最高許可權。

做法如下,開啟nginx.conf。本人的nginx.conf路徑:/etc/nginx/nginx.conf

vim /etc/nginx/nginx.conf

把之前的www-data修改為root