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