如果配置好nginx和uwsgi後,依然訪問失敗
!!!注意:前端build文件最好放到/var/目錄下,/root/目錄下一直報沒有權限執行index.html
- 查看服務狀態
sudo systemctl status your.service
- 查看uwsgi日誌,目錄爲uwsgi文件中配置的路徑,如:
logto=/home/datauser/log/uwsgi/backend.log
- 查看nginx錯誤日誌,目錄爲nginx.conf文件中配置的路徑,如:
/var/log/nginx
- 如果想單獨調試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端口:
- 開放端口號
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload