Django (Ubuntu: uwsgi+nginx項目部署)

1安裝 uwsgicss

pip install uwsgipython

2.在項目目錄下新建uwsgi.ini文件 而且配置nginx

chdir 是項目的根路徑django

wsgi-file 項目目錄下的wsgi.py文件  相對根目錄ubuntu


3.在安裝好uwsgi的虛擬環境或非虛擬環境下啓動uwsgi :(我在虛擬環境裏安的 沒進虛擬環境就啓動 找不到命令 哈哈)瀏覽器

啓動:uwsgi --ini uwsgi.ini網站

中止:uwsgi --stop uwsgi.pidui

重啓:uwsgi --reload uwsgi.pidurl

使用http協議查看網站運行狀況,運行正常,可是靜態文件沒法加載spa


安裝nginx  sudo apt-get install nginx

默認安裝到/usr/local/nginx目錄,進入此目錄執行命令

查看版本:sudo sbin/nginx -v

啓動:sudo sbin/nginx

中止:sudo sbin/nginx -s stop

重啓:sudo sbin/nginx -s reload

經過瀏覽器查看nginx運行結果

指向uwsgi項目:編輯conf/nginx.conf文件



默認監聽端口是80 在/etc/nginx/sites-enabled 下default下能夠修改默認端口 先不作修改


配置nginx

nginx默認會讀取/etc/nginx/sites-enabled/default文件中的配置,修改其配置以下:

經過nginx訪問須要在uwsgi中用soket訪問修改  uwsgi.ini文件 注意 uwsgi_pass 的地址與 uwsgi.ini文件中的地址一致


啓動 uwsgi    uwsgi --ini uwsgi.ini

重啓 nginx  

啓動  sudo nginx

中止:sudo nginx -s stop

重啓:sudo nginx -s reload


在瀏覽器中輸入 127.0.0.1:80 經過nginx訪問





配置 靜態文件目錄

location /static {

        alias /home/ubuntu/blog/static; # your Django project's static files - amend as required

}

# Django media

location /media {

alias /home/ubuntu/blog/media; # your Django project's media files - amend as required

}

收集Django靜態文件

把Django自帶的靜態文件收集到同一個static中,否則訪問Django的admin頁面會找不到靜態文件。在django的setting文件中,添加下面一行內容:

STATIC_ROOT = os.path.join(BASE_DIR, "本身的靜態文件目錄")在django主目錄的urls裏配置在項目urls裏配置static路徑
from django.views.static import serve
from blog.settings import MEDIA_ROOT, STATIC_ROOT
url(r'static/(?P<path>.*)$', serve, {'document_root': STATIC_ROOT}),
也能夠新建存放靜態文件目錄 進行配置 給目錄添加權限 sudo chmod 777 ‘新建的目錄’ 保證和nginx配置的目錄相同便可

而後到項目目錄下執行:

python manage.py collectstatic # 採集靜態文件到存放目錄 nginx會自動加載此目錄的靜態文件並返回

修改配置文件

DEBUG = False
ALLOWED_HOSTS = ['*']