部署django
1.安装所需工具包
yum -y install vim openssl openssl-devel sqlite-devel gcc gcc-c++ wget zip unzip psmisc
2.CentOS7安装python3
下载python3软件包
wget https://mirrors.huaweicloud.com/python/3.6.6/Python-3.6.6.tgz
解压安装
tar -xvf Python-3.6.6.tgz
cd Python-3.6.6
./configure --prefix=/usr/local/python3 --with-ssl
make
make install
设置环境变量
vim ~/.bashrc
export PATH=$PATH:/usr/local/python3/bin
source ~/.bashrc
3.安装django和uwsgi
pip3 install django==2.0 uwsgi -i https://pypi.douban.com/simple
4.安装nginx
下载nginx软件包
wget https://mirrors.huaweicloud.com/nginx/nginx-1.4.0.tar.gz
解压安装
tar -xvf nginx-1.4.0.tar.gz
cd nginx-1.4.0
./configure --prefix=/usr/local/nginx
make
make install
设置环境变量
vim ~/.bashrc
export PATH=$PATH:usr/local/nginx/sbin
source ~/.bashrc
5.开始配置
修改项目settings.py
配置
vim settings.py
将
# 调试模式
DEBUG = True
# 允许列表中的ip地址访问
ALLOWED_HOSTS = []
修改为
# 关闭调试模式
DEBUG = False
# 允许所有地址访问
ALLOWED_HOSTS = ['*', ]
uwsgi配置
在django项目目录中新增
uwsgi.ini
配置文件
vim uwsgi.ini
[uwsgi]
# 项目路径
chdir = /opt/django/proj1
# 指定socket监听的地址和端口
socket = 0.0.0.0:3031
# socket权限
chmod-socket=666
# django的wsgi文件路径
wsgi-file = /opt/django/proj1/proj1/wsgi.py
# 使用xx.wsgi模块
module=proj1.wsgi
# 启动五个进程
processes = 5
# 每个进程启动30个线程
threads = 30
master = true
# 日志存放路径
daemonize = /opt/django/proj1/uwsgi.log
# uwsgi启动进程id存放路径
pidfile = /opt/django/proj1/uwsgi.pid
# 允许用内嵌的语言启动线程,这将允许你在app程序中产生一个子线程
enable-threads = true
运行uwsgi
uwsgi --ini uwsgi.ini
nginx.conf
http代码部分增加
vim /usr/local/nginx/conf/nginx.conf
include /usr/local/nginx/conf/conf.d/*.conf;
新增配置文件
cd /usr/local/nginx/conf/conf.d
vim django.conf
server {
location / {
include uwsgi_params;
uwsgi_pass localhost:3031;
}
location /static/ {
root /opt/django/proj1/;
break;
}
}
修改settings.py
配置
STATIC_URL = '/static/'
STATICFILES_DIR = [
os.path.join(BASE_DIR,'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
样式收集
python3 manage.py collectstatic
部署flask
uwsgi.ini
[uwsgi]
http=0.0.0.0:5000
socket=0.0.0.0:8001
chdir = /root
wsgi-file = main.py
stats = 127.0.0.1:9191
callable = app
processes = 4
threads = 10
nginx.conf
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
}
网友评论