美文网首页
nginx+uwsgi部署django/flask

nginx+uwsgi部署django/flask

作者: 王哈哈就很棒 | 来源:发表于2020-05-23 11:32 被阅读0次

部署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;
}

相关文章

网友评论

      本文标题:nginx+uwsgi部署django/flask

      本文链接:https://www.haomeiwen.com/subject/rnykahtx.html