安装Nginx
使用命令安装yum install nginx
启动nginx
systemctl start nginx.service
systemctl enable nginx.service
安装Python3.6
yum install https://centos7.iuscommunity.org/ius-release.rpm -y
yum install python36u -y
yum install python36u-pip python36u-devel -y
配置pip 的清华镜像
在~/.pip
文件夹内新建pip.conf
文件
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装mysql
下载并安装MySQL官方的 Yum Repositorywget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL服务器。yum -y install mysql-community-server
启动 systemctl start mysqld.service
看运行状态 systemctl status mysqld.service
找密码的命令 grep "password" /var/log/mysqld.log
修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
修改密码的验证
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
移除yum仓库中的mysql yum -y remove mysql57-community-release-el7-10.noarch
初始化虚拟环境
为了不影响外界环境的清洁,所以我们使用虚拟环境来配置 Django 项目
cd /home/
mkdir django
cd django
python3.6 -m venv venv
创建完成后,执行命令,进入虚拟环境source venv/bin/activate
然后在虚拟环境中安装 django 并初始化项目
pip install django
django-admin startproject my
cd my
python manage.py startapp mine
pip install mysqlclient
的时候会报错
要安装mysql依赖yum install mysql-devel gcc gcc-devel python-devel
预览项目
创建完成 App 后,我们需要修改 my/settings.py 使 Django 能处理来做所有域名中的请求
DEBUG = False
# 修改允许的域名
ALLOWED_HOSTS = ['ip地址']
收集静态文件:python manage.py collectstatic
。
修改完成后,执行如下命令来启动 Django 的测试服务器。
python /home/django/my/manage.py runserver 0.0.0.0:80
这时,你可以访问 IP 地址 查看预览界面
安装 Uwsgi
uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是他的强项。uwsgi是使用python编写的,因此通过pip install uwsgi
就可以了。(uwsgi必须安装在系统级别的Python环境中,不要安装到虚拟环境中)。
使用命令uwsgi --http :8000 --module zhiliaoketang.wsgi --vritualenv=/root/.virtualenvs/django-env-py2
。用uwsgi
启动项目,如果能够在浏览器中访问到这个页面,说明uwsgi
可以加载项目了。
配置 Uwsgi
首先,我们来创建一个目录用于存放 Django 的配置文件
mkdir -p /home/django_conf
然后在这个目录下创建一个文件 uwsgi.ini
.
示例代码:/home/django_conf/uwsgi.ini
[uwsgi]
# Django相关的配置
# 必须全部为绝对路径
# 项目的路径
chdir = /srv/zhiliaoketang
# Django的wsgi文件
module = zhiliaoketang.wsgi
# Python虚拟环境的路径
home = /root/.virtualenvs/django-env-py2
# 进程相关的设置
# 主进程
master = true
# 最大数量的工作进程
processes = 10
# socket文件路径,绝对路径
socket = /srv/zhiliaoketang/zhiliaoketang.sock
# 设置socket的权限
chmod-socket = 666
# 退出的时候是否清理环境
vacuum = true
然后使用命令uwsgi --ini zhiliaoketang.ini
,看下是否还能启动这个项目。
配置 Nginx
配置完成 Uwsgi 后,我们来创建 Nginx 的配置文件(/etc/nginx/conf.d/my.conf
)
示例代码:/etc/nginx/conf.d/my.conf
upstream name {
server unix:///root/django/project_name/name.scok
}
server {
listen 80;
server_name ip地址 域名;
charset utf-8;
client_max_body_size 75M;
location /media {
alias /root/django/my/media; # media路径
}
location /static {
alias /root/django/my/static; # static文件路径
}
location / {
uwsgi_pass unix:///root/django/my/my.sock; # 跟uwsgi配置的socket要保持一致
uwsgi_pass name
include /etc/nginx/uwsgi_params;
}
}
然后,重启 Nginx
systemctl restart nginx.service
配置 Supervisord
让supervisor
管理uwsgi
,可以在uwsgi
发生意外的情况下,会自动的重启。supervisor
的安装:在系统级别的python
环境下pip install supervisor
。
在项目的根目录下创建一个文件叫做zlkt_supervisor.conf
。内容如下:
# supervisor的程序名字
[program:mysite]
# supervisor执行的命令
command=uwsgi --ini zlkt_uwsgi.ini
# 项目的目录
directory = /srv/zhiliaoketang
# 开始的时候等待多少秒
startsecs=0
# 停止的时候等待多少秒
stopwaitsecs=0
# 自动开始
autostart=true
# 程序挂了后自动重启
autorestart=true
# 输出的log文件
stdout_logfile=/srv/zhiliaoketang/log/supervisord.log
# 输出的错误文件
stderr_logfile=/srv/zhiliaoketang/log/supervisord.err
[supervisord]
# log的级别
loglevel=info
# 使用supervisorctl的配置
[supervisorctl]
# 使用supervisorctl登录的地址和端口号
serverurl = http://127.0.0.1:9001
# 登录supervisorctl的用户名和密码
username = admin
password = 123
[inet_http_server]
# supervisor的服务器
port = :9001
# 用户名和密码
username = admin
password = 123
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
然后使用命令supervisord -c zlkt_supervisor.conf
运行就可以了。
以后如果想要启动uwsgi
,就可以通过命令supervisorctl -c supervisor.conf
进入到管理控制台,然后可以执行相关的命令进行管理:
status # 查看状态
start program_name #启动程序
restart program_name #重新启动程序
stop program_name # 关闭程序
reload # 重新加载配置文件
quit # 退出控制台
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django部署(uwsgi版本) - Python技术站