centos7 uwsgi nginx 部署 python3.6 + django2.2

前言:规范本人习惯,一般不再root账号下进行配置。

1、创建一个管理项目的用户

useradd -U uwsgi    # 创建与用户同名的组
passwd uwsgi
# 切换到新用户下
su uwsgi

2、将项目放到/home/www/下(创建一个新的django项目参考官网

提示:/home/www/ 只是推荐地址。可任意存放,只要在配置uwsgi.ini关联到即可。

# 创建虚拟环境
python3 -m venv env
# 安装django
pip install django==2.2.9
# 使用postgreSql需要psycopg2模块
pip install psycopg2-binary
# 更改目录所有者
sudo chown -R uwsgi:uwsgi /home/www/cdms

3、测试项目是否正常

# 利用ssh方式配置时推荐运行在0.0.0.0或者你的内网ip
python manage.py runserver 0.0.0.0:8000
# 192.168.1.188是我的内网ip
# 浏览器访问192.168.1.188:8000 看到正常运行的界面代表成功

4、安装和配置uwsgi

安装:

# 必须安装编译工具
yum install -y gcc* pcre-devel openssl-devel
# 安装python3.6的开发工具
yum install -y python36-devel
# 安装uwsgi(推荐安装到虚拟环境中)
pip install uwsgi
# 测试是否成功
uwsgi

配置:uwsgi.ini 文件(一些参数理解或者参数详解

[uwsgi]
chdir=/home/www/cdms    # django项目根目录
module=cdms.wsgi:application    # wsgi的相对路径
socket=/home/www/script/uwsgi.sock    # nginx接受请求后,转发到内部的路径
# socket=127.0.0.1:8000 也是可以的,nginx的kms.conf记得相应更改uwsgi_pass 127.0.0.1:8000

http=192.168.1.188:8000    # 创建一个http的服务,可在浏览器中直接访问 | 一般可以不配此项
workers=4    # 子进程数
pidfile=/home/www/script/uwsgi.pid    # 用于下面的脚本启动、停止该进程
uid=uwsgi    # 执行uwsgi的用户
gid=uwsgi   # 执行uwsgi的组

master=true    # 启用主进程
vacuum=true    # 服务停止时,自动移除unix、Socket和pid文件
harakiri=30    # 超时中断时间
post-buffering=4096    # 缓冲区大小
daemonize=/home/www/script/uwsgi.log    # 日志文件

配置完成后,测试是否成功 | 下面的全路径可相应改为相对路径

uwsgi --ini /home/www/script/uwsgi.ini
# 端口被占用的话,可以先停掉之前uwsgi服务
sudo killall -9 uwsgi

访问 192.168.1.188:8000 正常则配置成功。(需要在uwsgi.ini中配置http服务)

5、安装和配置Nginx

安装:

# 安装
sudo yum -y install nginx
# 测试,提示"...test is successful"则成功
sudo nginx -t

配置:

# 在 /etc/nginx/conf.d 添加自己的配置文件即可,一般不建议直接修改 nginx.conf
# nginx.conf默认关联conf.d中的*.conf文件
sudo vim /etc/nginx/conf.d/kms.conf    
# kms.conf 配置如下
server{
    listen 80;
    server_name 192.168.1.188;
    access_log /var/log/nginx/access.log;
    charset utf-8;

    error_page 404 /404.html; # 错误页面
    error_page 500 502 503 504 /50x.html; # 错误页面

    location / {
        include uwsgi_params;    # 一个与uwsgi通讯的文件
        uwsgi_connect_timeout 30; 
        uwsgi_pass unix:/home/www/script/uwsgi.sock;
        # uwsgi_pass 127.0.0.1:8000 ## 和uwsgi对应即可
    }

    location /static/ {
        alias /home/www/cdms/static/;
        index index.html index.htm;
    }
}

运行 nginx -t 查看配置是否成功。

sudo nginx -t
# 若配置成功,一定要重启服务
sudo systemctl restart nginx

6、centos7.2以上502 Bad Gateway问题

该问题是是selinux引起的,选择关闭它即可。

sudo vim /etc/sysconfig/selinux
# 打开 selinux 文件后,修改
SELINUX=enforcing  ==> SELINUX=disabled
# 保存、退出。执行下列命令:
sudo setenforce 0
getenforce
# 显示 Permissive 即可

7、安装killall

sudo yum install -y psmisc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值