python3-django+uwsgi+supervisor+nginx跳坑指南(記錄)


 

首先運行django項目:在項目目錄內:

python manage.py runserver 0.0.0.0:8000

外部服務器訪問:http://www.xxx.com:8000/

可以正常運行

 ###參考:https://blog.51cto.com/chenx1242/1859830

如果不對,不太對?這是因為django項目里設置了ALLOWED_HOSTS的原因 我們在setting.py里設置一下

ALLOWED_HOSTS = ['*']

 SECURE_SSL_REDIRECT=Flase

 

uwsgi 選擇python版本,最開始的默認python版本是2.7下載的,之后再pip3安裝一直用的是那個下載的包

~# uwsgi --python-version
2.7.5

重新下載之后

~# uwsgi --python-version

3.6.1

運行

#uswgi uwsgi.ini

提示並且服務無法訪問:

unable to stat() /home/XXX/reload, events will be triggered as soon as the file is created

原因:項目目錄下缺少一個用於緩沖的reload文件,新建一個名為reload的空文件就解決了

 

把uwsgi 和nginx結合運行:

uwsgi uwsgi.ini & /usr/local/nginx/sbin/nginx

停止uwsgi進程

sudo pkill -f uwsgi -9

用uwsgi運行項目:

可以打開但是無法加載css樣式



supervisor 常見問題參考鏈接:https://segmentfault.com/a/1190000003955182
其中

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

 

 

解決辦法:

sudo unlink /tmp/supervisor.sock

或者:
sudo unlink /var/run/supervisor.sock

出現:unix:///tmp/supervisor.sock no such file

法一:運行supervisorctl時保錯,

修改/etc/supervisor/supervisor.conf文件

將file=/var/run/supervisor.sock 修改為/tmp/supervisor.sock

重啟supervisor服務即可

法二:重新安裝supervisor :

sudo pip install supervisor

echo_supervisord_conf > /etc/supervisord.conf

sudo supervisord

sudo supervisorctl
uwsgi --http :8000 --chdir /home/ftpuser/www/untitled3 --module untitled3.wsgi

出現no python application found, check your startup logs for errors
我的原因是命令寫錯了,上面。。。。test.wsgi寫成了project.wsgi



以下為復制:

我在Centos6安裝了nginx,嘗試設置虛擬主機。目前的問題是我找不到/etc/nginx/sites-available目錄。
有什么東西需要我創建的嗎?目前我已經知道nginx啟動了,因為我能在瀏覽器打開網頁。

我認為nginx自身並沒有創建有你說的那目錄,如果是ubuntu apt安裝的話,倒是有可以有這個目錄。不過你可以自己手動來創建。
創建/etc/nginx/sites-available和/etc/nginx/sites-enabled目錄,在/etc/nginx/nginx.conf配置文件中的http區塊添加如下行:
include /etc/nginx/sites-enabled/*;
所有的虛擬主機配置文件放在sites-available目錄,然后你可以在sites-enabled目錄創建軟鏈接指向sites-available里的配置文件


分割線///////////////////////////////////////////////////////////////////////////////////////
Nginx下Django Admin界面Css、JS丟失問題解決方法:原文鏈接:https://blog.csdn.net/qq_24861509/article/details/45727983
我的項目位置在 /z/mysite/
其中我們需要在mysite下新建一個static文件夾,
用來存放admin需要的一些css、img、js 1.修改mysite/settings.py:
2.使用命令將django安裝目錄下的static文件拷貝過來:
python manage.py collectstatic
OK,現在已經在/z/mysite/static/下生成admin文件夾,里邊有css、img、js 3.修改Ngnix的ngnix.conf ,
添加以下代碼: location ~/static/ { root /z/mysite/ ; break; }

4.重啟uwsgi和nginx,再看看admin是不是已經恢復了呢。
///////////////////////////////////////////////////////////////////////
worker_processes
:操作系統啟動多少個工作進程運行Nginx。注意是工作進程,不是有多少個nginx工程。
在Nginx運行的時候,會啟動兩種進程,一種是主進程master process;一種是工作進程worker process。
例如我在配置文件中將worker_processes設置為4,啟動Nginx后,使用進程查看命令觀察名字叫做nginx的進程信息,我會看到如下結果:




解決unix:///tmp/supervisor.sock no such file的問題

版權聲明:本文為博主原創文章,遵循 CC 4.0 by-sa 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: https://blog.csdn.net/qq_28885149/article/details/79364685

1、打開配置文件

vim /etc/supervisord.conf

這里把所有的/tmp路徑改掉,/tmp/supervisor.sock 改成 /var/run/supervisor.sock,/tmp/supervisord.log 改成 /var/log/supervisor.log,/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自動清掉

2、修改權限

  1. sudo chmod 777 /run
  2. sudo chmod 777 /var/log

如果沒改,啟動報錯 IOError: [Errno 13] Permission denied: '/var/log/supervisord.log'

3、創建supervisor.sock

  1. sudo touch / var/run/supervisor.sock
  2. sudo chmod 777 /var/run/supervisor.sock

4、啟動supervisord,注意stop之前的實例或殺死進程

supervisord



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM