生活随笔
收集整理的這篇文章主要介紹了
Django项目部署在Centos7
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
把Django項目部署在Centos7下
- 安裝數(shù)據(jù)庫驅(qū)動:- yum install gcc mariadb-devel- pip install mysqlclient- pip install django=="2.0.6"- 測試使用:- django-admin startproject testproj 在當前目錄下創(chuàng)建一個project:"testproj"- cd到testproj目錄下的testporj目錄下settings.py 修改配置:ALLOWED_HOSTS = ["*"]- 啟動django內(nèi)置的web服務(wù)器。cd到testproj目錄下,執(zhí)行:python manage.py runserver 0.0.0.0:port- 在Windows的瀏覽器中訪問:ip:port -- ip為Linux系統(tǒng)的ip地址
- 將uWSGI的tar包發(fā)送linux
- 解壓tar:tar -zxvf uwsgi-2.0.17.tar.gz
- cd到解壓目錄下,編譯:make
- 為了可以更方便的執(zhí)行 uwsgi 啟動uWSGI服務(wù)器,定制鏈接:ln -s /usr/local/uwsgi-2.0.17/uwsgi /usr/bin/uwsgi則可以在任意目錄下執(zhí)行 uwsgi 去啟動uWSGI服務(wù)器
- 測試使用python的wsgi服務(wù)器-uWSGI- 在任意的一個目錄中定義一個python腳本:hello.pydef application(env, start_response):start_response('200 OK', [('Content-Type','text/html;charset=utf-8')])return [bytes('你好啊!!','utf-8'),b'Mr_lee'] # 基于wsgi協(xié)議規(guī)范實現(xiàn)的代碼- 啟動uWSGI服務(wù)器,并部署hello.py程序uwsgi --http 192.168.248.128:8001 --wsgi-file hello.py #注意hilo.py可以寫成絕對路徑- 瀏覽器訪問:192.168.248.128:8001
-
uWSGI部署Django項目
1.mysql數(shù)據(jù)庫操作:
設(shè)置mysql的引擎默認為:innodb在
/etc
/my
.cnf的
[mysqld
]中添加配置:default
-storage
-engine
=InnoDB建議mysql設(shè)置為嚴格模式在
/etc
/my
.cof的
[mysqld
]中添加配置:sql_mode
=STRICT_TRANS_TABLES查看mysql的配置參數(shù):mysql
> show variables where variable_name like
'%mode%';注:修改配置后,要重啟Mysql服務(wù)在數(shù)據(jù)庫中建好項目需要的database:“ems2_project”可使用Navicat創(chuàng)建,注意修改字符集為:utf8
2.在Django項目的settings.py中修改配置
DENUG
= False ALLOWED_HOSTS
= ["*"] DATABASES
= {'default' : 'django.db.backends.mysql','NAME' : 'ems2_project','USER' : 'root','HOST' : 'localhost' 'PORT' : 3306,'PASSWORD' : '123456'}
3.發(fā)送項目到Linux并做移植
python manage
.py makemigrationspython manage
.py migrate
4.編寫uWSGI的配置文件創(chuàng)建文件:config.ini # 建議放在項目的跟目錄下
[uwsgi
]http
= 192.168.186.159:9000 socket
= 192.168.186.159:9001chdir
= /usr
/local
/Django_project
/ems2_project wsgi
-file = ems2_project
/wsgi
.py processes
= 4threads
= 2stats
= 192.168.186.159:9002vacuum
= truepidfile
= /usr
/local
/Django_project
/ems2_project
/uwsgi
.pid daemonize
= /usr
/local
/Django_project
/ems2_project
/uwsgi
.log
5.根據(jù)如上配置啟動uWSGI服務(wù)器uwsgi --ini config.ini # 注意:config.ini是相對路徑6.關(guān)閉服務(wù)器uwsgi -- stop uwsgi.pid # 通過進程id文件 注:如多次開啟并未關(guān)閉,需要kill -9 進程id
安裝:- 將tar包發(fā)送的linux- 解壓 tar -zxvf nginx-1.11.1.tar.gz - 安裝依賴 yum install gcc zlib-devel pcre-devel - cd到解壓目錄:./configure #配置檢測- cd到解壓目錄:make && make install #編譯并安裝- 安裝完成,安裝路徑為/usr/local/nginx ,日志路徑為 /usr/local/nginx/logs ,可執(zhí)行文件路徑為 /usr/local/nginx/sbin ,配置文件路徑為 /usr/local/nginx/conf歡迎頁面路徑為 /usr/local/nginx/html- ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx 制作連接,便于執(zhí)行nginx指令- nginx #啟動 nginx -s stop #關(guān)閉nginx -s reload #重啟http://ip:80即可訪問nginx歡迎頁面
配置:到配置路徑中的nginx.conf /usr/local/nginx/conf/nginx.conf
upstream ems{server 192.168.157.141:9001; # uWSGI's socket = 192.168.x.x:9001#可以在添加其他的uWSGI的服務(wù)器
}server {listen 80;server_name 192.168.157.142; # nginx服務(wù)器的ipcharset utf-8;location / {uwsgi_pass ems; #和上面的upstream轉(zhuǎn)接 include /usr/local/nginx/conf/uwsgi_params; # the uwsgi_params file you installed} location /static { #http://ip:80/static/a/b/c/d.png ==> /usr/local/static/a/b/c/d.png alias /usr/local/static; # your Django project's static files - amend as required}
}
搭建uWSGI集群,只需要多做幾份uWSGI的配置文件,文件中設(shè)置不同的ip:port,指向相同的project,然后啟動多個uWSGI即可。
*默認:輪詢upstream django {server 192.168.0.103:8989; server 192.168.0.104:8989;}
*iphash:基于ip的負載均衡.upstream django {ip_hash;server 192.168.0.103:8989;server 192.168.0.104:8990;}
*權(quán)重輪詢:upstream django {server 192.168.0.103:8989 weight=1; server 192.168.0.104:8990 weight=2; }
*最小連接數(shù):upstream django {least_conn; server 192.168.0.103:8989;server 192.168.0.104:8990;}
至此,一個項目部署成功。
總結(jié)
以上是生活随笔為你收集整理的Django项目部署在Centos7的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。