Ubuntu nginx+uwsgi部署Django项目
前提條件:首先項目使用一下命令啟動成功后,輸入公網ip后可以啟動成功
python manage.py runserver 0.0.0.0:80?一、阿里云配置安全組 添加8000端口
二、安裝配置uwsgi
1、確定django項目可以正常運行了,ctrl+c停止項目,下面我們來安裝uwsgi:
在安裝uwsgi非常簡單,只需要pip安裝即可,
按照官網介紹,寫已經Python腳本進行測試,test.py(在任意路徑都可以,不過測完要記得刪掉)
def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"]然后輸入命令進行測試
uwsgi --http :8000 --wsgi-file test.py在瀏覽器打開公網ip:8000。出現Hello World則證明uwsgi安裝成功
如若不行:運行以下命令:
iptables -L
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
?2、配置wsgi.py文件
打開項目中wsgi.py文件,添加兩行代碼
3、在django項目根目錄下創建uwsgi.ini文件
uwsgi.ini 文件配置
[uwsgi] chdir= /home/tempfile/RSMDSys module= RSMDSys.wsgi socket= 127.0.0.1:8000 master= true processes=4 vacuum=true daemonize= /home/tempfile/RSMDSys/uwsgi.log pidfile=/home/tempfile/RSMDSys/uwsgi.pid?
這里配置日志文件和pid文件,方便之后的重啟
關于uwsgi的重啟問題:
每次項目有代碼更新的話,都需要重啟uwsgi,如果沒有配置pid文件的話,重啟需要使用:
#查看uwsgi進程號 ps aux | grep uwsgi #關閉進程號為0的進程 kill -9 主進程號來停止uwsgi,然后才能重啟,注意這里的主進程是pid為1的進程,而配置了pid文件的,只需要進行如下方法來重啟即可
#重載(一般修改參數,或者修改py文件經常用到) uwsgi --reload uwsgi.pid #重啟(一般系統環境變化會用到) uwsgi --stop uwsgi.pid4、最后在項目根目錄下運行uwsgi命令,載入配置文件
uwsgi --ini uwsgi.ini三 安裝配置ngnix
sudo apt-get install nginx修改nginx配置
cd /etc/nginx/sites-enabled #Ubuntu中nginx配置文件所在路徑 vim default server {listen 80 default_server; #監聽端口,將來訪問的端口listen [::]:80 default_server;root /var/www/html;# Add index.php to the list if you are using PHPindex index.html index.htm index.nginx-debian.html;server_name _;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:8000; #uwsgi中配置的路徑}location /static {alias /home/tempfile/RSMDSys/static; #靜態資源路徑}location /media {alias /home/tempfile/RSMDSys/media; #網頁圖標路徑} }uwsgi啟動后,再啟動nginx
基礎命令
/etc/init.d/nginx start #啟動 /etc/init.d/nginx stop #關閉 /etc/init.d/nginx restart #重啟啟動之后,訪問外網IP:80,查看是否可以通過nginx訪問django.如果能訪問表示配置成功。
參考自https://segmentfault.com/a/1190000013529115
https://blog.csdn.net/qq_35318838/article/details/79531566
總結
以上是生活随笔為你收集整理的Ubuntu nginx+uwsgi部署Django项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卷积层和池化层的计算公式的区别
- 下一篇: opencv10-形态学操作