centos7下nginx+uwsgi+django部署錯誤總結

如果配置好nginx和uwsgi後,依然訪問失敗

!!!注意:前端build文件最好放到/var/目錄下,/root/目錄下一直報沒有權限執行index.html

  1. 查看服務狀態sudo systemctl status your.service
  2. 查看uwsgi日誌,目錄爲uwsgi文件中配置的路徑,如:logto=/home/datauser/log/uwsgi/backend.log
  3. 查看nginx錯誤日誌,目錄爲nginx.conf文件中配置的路徑,如:/var/log/nginx
  4. 如果想單獨調試uwsgi+django,注意uwsgi配置 socket=127.0.0.1:8005,socket改爲http

以下爲遇到的問題:
a. nginx Failed to read PID from file /run/nginx.pid: Invalid argument
解決方法:mkdir -p /etc/systemd/system/nginx.service.d
printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
systemctl daemon-reload
systemctl restart nginx.service

b. invalid request block size: 21327 (max 4096)...skip 
解決方法:uwsgi配置文件中添加一行 buffer-size=32768

c. selinux導致錯誤 connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream
解決方法,命令行執行 setsebool -P httpd_can_network_connect 1

d. nginx的權限問題(13: Permission denied)解決辦法
修改nginx.conf文件:user nginx 改成 user root

停止nginx -s stop
重啓nginx -c nginx.conf

注意:不要使用systemctl 或 service方式啓動,selinux權限不讓nginx訪問nginx.conf

其它,如:宿主機訪問不了虛擬機系統的8080端口:

  1. 開放端口號 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    sudo firewall-cmd --reload
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章