一.相關(guān)知識(shí)了解
Django
一個(gè)基于python的開(kāi)源web框架霎苗,請(qǐng)確保自己熟悉它的框架目錄結(jié)構(gòu)。
uWSGI
一個(gè)基于自有的uwsgi協(xié)議榛做、wsgi協(xié)議和http服務(wù)協(xié)議的web網(wǎng)關(guān)
nginx
常用高性能代理服務(wù)器
二.服務(wù)器環(huán)境配置
升級(jí)更新apt-get
apt-get update
查看python版本
python -V
如果python版本過(guò)低就升級(jí)python
下載python安裝包
解壓
tar -zxvf Python-3.6.1.tgz
進(jìn)入解壓后的目錄
cd Python-3.6.1
編譯
make
安裝
make install
配置pip 一般不需要
apt-get install python-pip
apt-get install python3-pip
查看pip安裝的文件
pip list
手工安裝相關(guān)環(huán)境
安裝django
pip install django
指定版本安裝
pip install django==1.11
安裝pymysql
pip install pymysql
自動(dòng)化安裝
拾取本地模塊
pip freeze > piplist.txt
將文件上傳到服務(wù)器唁盏,確認(rèn)環(huán)境安裝成功,pip安裝成功
執(zhí)行安裝命令
pip install -r piplist.txt
數(shù)據(jù)庫(kù)安裝[安裝mysql數(shù)據(jù)庫(kù)]
apt-get install mysql-server
三.項(xiàng)目操作
1.打包上傳項(xiàng)目文件
解壓項(xiàng)目
unzip ***.zip
tar -xvcf ***.tar.gz
2.連接數(shù)據(jù)庫(kù)
進(jìn)入項(xiàng)目/settings.py修改配置文件检眯,確認(rèn)賬號(hào)
+密碼
和服務(wù)器內(nèi)一致
創(chuàng)建數(shù)據(jù)庫(kù)厘擂,名稱需要和settings.py中的數(shù)據(jù)庫(kù)名一致
如果數(shù)據(jù)庫(kù)有修改先同步腳本
python manage.py migrations
同步數(shù)據(jù)庫(kù)數(shù)據(jù)
python manage.py migrate
有些項(xiàng)目需要啟動(dòng)數(shù)據(jù),注意這些數(shù)據(jù)必須上傳到服務(wù)器數(shù)據(jù)庫(kù)內(nèi)
3.收集靜態(tài)文件
在項(xiàng)目主目錄下建立一個(gè)文件夾
mkdir static_file
在settings.py中增加靜態(tài)文件配置項(xiàng)
STATIC_ROOT = /項(xiàng)目絕對(duì)路徑/static_file
執(zhí)行命令锰瘸,收集靜態(tài)文件
python manage.py collectstatic
需要格外注意路徑問(wèn)題!!!!
四.項(xiàng)目啟動(dòng)問(wèn)題
安裝uwsgi
pip install uwsgi
1.uwsgi初步啟動(dòng)
簡(jiǎn)易啟動(dòng)
--file=項(xiàng)目/wsgi.py --http=0.0.0.0:8000 --static_map=/static
寫(xiě)配置文件啟動(dòng)
[uwsgi]
http=0.0.0.0:8000
#啟用端口
chdir=/home/myblog
#指定運(yùn)行的目錄
wsgi-file=myblog/wsgi.py
#載入wsgi-file文件
processes=4
#開(kāi)啟進(jìn)程數(shù)
threads=2
#開(kāi)啟線程數(shù)
master=true
#啟用主進(jìn)程管理
pidfile=uwsgi.pid
#指定記錄主進(jìn)程的文件
vacuum=true
#服務(wù)器關(guān)閉前清理環(huán)境
daemonize=uwsgi.log
#指定記錄日志文件
log-maxsize=6000
#指定日志大小KB
static-map=/static=static_file
#靜態(tài)文件目錄
啟動(dòng)命令
uwsgi --ini uwsgi.ini
關(guān)閉
uwsgi --stop uwsgi.pid
查看
ps -ef|grep uwsgi
查看幫助
uwsgi -h(--help)
重啟
uwsgi --reload uwsgi.pid
查看uwsgi啟用的進(jìn)程號(hào)
more uwsgi.pid
2.nginx+uwsgi分布式聯(lián)合啟動(dòng)
安裝nginx
apt-get install nginx
修改uwsgi配置文件
[uwsgi]
scoket=127.0.0.1:8000
chdir=/home/myblog
wsgi-file=myblog/wsgi.py
processes=4
threads=2
master=true
pidfile=uwsgi.pid
vacuum=true
daemonize=uwsgi.log
static-map=/static=static_file
修改nginx配置文件
vim /etc/nginx/nginx.conf
在http內(nèi)添加
http{
server{
listen 80;
server_name 39.105.64.155;
#反向代理
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
#靜態(tài)文件服務(wù)器
location /static {
alias /home/myblog/static_file;
}
}
nginx負(fù)載均衡的策略
權(quán)重分配
upstream myweb{
server 127.0.0.1:8000 weight 80;
server 127.0.0.1:8001 weight 100;
server 127.0.0.1:8002 weight 200;
}
####ip分配方式
upstream myweb{
ip_hash;
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002 ;
}