生活随笔
收集整理的這篇文章主要介紹了
Django项目部署在Centos7
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
把Django項目部署在Centos7下
-
先有一個Django項目
一個員工管理系統(ems) 員工管理系統
-
使用VMware創建一個虛擬的Linux系統
-
Centos7下安裝MySql5.7 詳細安裝
-
Centos7下安裝Python3.5 詳細安裝
-
Centos7下安裝Django2.0.6
- 安裝數據庫驅動:- yum install gcc mariadb-devel- pip install mysqlclient- pip install django=="2.0.6"- 測試使用:- django-admin startproject testproj 在當前目錄下創建一個project:"testproj"- cd到testproj目錄下的testporj目錄下settings.py 修改配置:ALLOWED_HOSTS = ["*"]- 啟動django內置的web服務器。cd到testproj目錄下,執行:python manage.py runserver 0.0.0.0:port- 在Windows的瀏覽器中訪問:ip:port -- ip為Linux系統的ip地址
- 將uWSGI的tar包發送linux
- 解壓tar:tar -zxvf uwsgi-2.0.17.tar.gz
- cd到解壓目錄下,編譯:make
- 為了可以更方便的執行 uwsgi 啟動uWSGI服務器,定制鏈接:ln -s /usr/local/uwsgi-2.0.17/uwsgi /usr/bin/uwsgi則可以在任意目錄下執行 uwsgi 去啟動uWSGI服務器
- 測試使用python的wsgi服務器-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協議規范實現的代碼- 啟動uWSGI服務器,并部署hello.py程序uwsgi --http 192.168.248.128:8001 --wsgi-file hello.py #注意hilo.py可以寫成絕對路徑- 瀏覽器訪問:192.168.248.128:8001
-
uWSGI部署Django項目
1.mysql數據庫操作:
設置mysql的引擎默認為:innodb在
/etc
/my
.cnf的
[mysqld
]中添加配置:default
-storage
-engine
=InnoDB建議mysql設置為嚴格模式在
/etc
/my
.cof的
[mysqld
]中添加配置:sql_mode
=STRICT_TRANS_TABLES查看mysql的配置參數:mysql
> show variables where variable_name like
'%mode%';注:修改配置后,要重啟Mysql服務在數據庫中建好項目需要的database:“ems2_project”可使用Navicat創建,注意修改字符集為: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.發送項目到Linux并做移植
python manage
.py makemigrationspython manage
.py migrate
4.編寫uWSGI的配置文件創建文件: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.根據如上配置啟動uWSGI服務器uwsgi --ini config.ini # 注意:config.ini是相對路徑6.關閉服務器uwsgi -- stop uwsgi.pid # 通過進程id文件 注:如多次開啟并未關閉,需要kill -9 進程id
安裝:- 將tar包發送的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 ,可執行文件路徑為 /usr/local/nginx/sbin ,配置文件路徑為 /usr/local/nginx/conf歡迎頁面路徑為 /usr/local/nginx/html- ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx 制作連接,便于執行nginx指令- nginx #啟動 nginx -s stop #關閉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的服務器
}server {listen 80;server_name 192.168.157.142; # nginx服務器的ipcharset utf-8;location / {uwsgi_pass ems; #和上面的upstream轉接 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的配置文件,文件中設置不同的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;}
*權重輪詢:upstream django {server 192.168.0.103:8989 weight=1; server 192.168.0.104:8990 weight=2; }
*最小連接數:upstream django {least_conn; server 192.168.0.103:8989;server 192.168.0.104:8990;}
至此,一個項目部署成功。
總結
以上是生活随笔為你收集整理的Django项目部署在Centos7的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。