【技術博客】Django+uginx+uwsgi框架的服務器部署

1.登陸服務器

使用ssh來直接登陸到服務器terminal進行操做,推薦使用XShell和XFtp來進行遠程登陸和文件傳輸。html

2.運行環境準備

本組得到的華爲雲服務器爲ubuntu16.04版本,先安裝python和pip。而後安裝django,注意安裝版本要和本地測試的django版本一致,下面以2.0爲例python

pip3 install django2.0

安裝nginxmysql

sudo apt-get update
sudo apt-get install nginx

安裝完成後。用你電腦的瀏覽器訪問你的服務器的公網ip地址,看看安裝成功沒有。nginx

安裝uwsgigit

在你的本地電腦訪問https://uwsgi-docs.readthedocs.io/en/latest/Download.html,下載Stable/LTS版本的源文件。sql

本地下解壓這個源文件,而後用xftp把文件拖放到阿里雲的Ubuntu的家目錄(home)下,使用cd命令進入到該文件夾下,按順序依次輸入下面三條命令:django

sudo apt-get install python3-setuptools
sudo apt-get install python3-dev
sudo python3 setup.py install

安裝MySQLubuntu

sudo apt-get install mysql-server mysql-client

配置mysql文件:vim

sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf

而後註釋掉下面這行代碼:瀏覽器

# band-address = localhost

3.配置項目

先用xftp把你的整個博客項目拖到家目錄(home)那裏,或者使用git工具從代碼庫裏面拷貝,而後開始配置nginx文件:

cd /etc/nginx/sites-available
vim default

使用cd命令進入到sites-available文件夾,文件夾下有一個default文件,使用vim打開它,找到default文件下的這段代碼,若是沒有就要添加上去:

server_name 192.168.1.121;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; }
location /static {
alias /home/feixue/python/www/for_test/static;
}
location /media {
alias /home/ubuntu/blog/media; }

192.168.1.121替換成你本身服務器公網IP地址;

static 那裏也要替換成你本身Django項目的static路徑;

media 同理換成你本身Django項目的media路徑,這是媒體文件的文件夾;

注意:location後面是有空格的,必需要有!alias後面也是有空格的;include上面那句話也是要註釋掉的!

修改爲完成後使用 wq 保存退出。

再輸入下面命令重啓服務:

sudo service nginx restart

配置uwsgi

在django項目有manage.py文件的目錄下,新建一個uwsgi.ini文件和一個run.log文件

而後咱們使用vim編輯器編輯uwsgi.ini文件:

[uwsgi]
chdir = /home/NAME
module = NAME.wsgi:application
socket = 127.0.0.1:8000
master = true
daemonize = /home/run.log
disable-logging = true

chdir 是你的項目的根目錄,要替換成實際的路徑;

moudule 是你的入口wsgi模塊,將NAME替換成項目名稱;

socket 是通訊端口設置,這個設置不用改,複製便可;

master = true 表示以主進程模式運行,不用改,複製便可;

daemonize 是日誌文件目錄,這個路徑就是剛剛新建的run.log文件的路徑;

disable-logging = true 表示不記錄正常信息,只記錄錯誤信息。

修改settings.py文件

打開settings.py文件找到下面代碼並修改:

DEBUG = False
ALLOWED_HOSTS = [‘192.168.178.128’]

上面這個在一些狀況下不改好像也不影響運行。

4.運行服務

使用下面的命令重啓運行nginx和uwsgi:

sudo service nginx restart
sudo killall -9 uwsgi
sudo uwsgi uwsgi.ini

django項目在本地的運行方式是python manage.py runserver,而在服務器上則不須要,交給uwsgi來完成這步便可。在三者的框架下,django做爲一個基於python的Web應用框架,實現網站的實際功能。nginx做爲一個Web服務器,經過監聽端口來接收用戶端信息。uwsgi則是把上面二者鏈接起來,uwsgi做爲通訊協議能夠肯定服務器(nginx)和應用框架(django)之間的傳輸信息標準。因此咱們在服務器上啓動nginx service後再啓動uwsgi便可運行服務。

相關文章
相關標籤/搜索