环境部署配置
Alibaba Cloud Linux 3.2104 LTS 64位
Django 4.1.2
uWSGI 2.0.21
nginx 1.22.1
Python 3.9.6
安装python
https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz
tar -xvf Python-3.9.6.tar.xz
cd Python-3.9.6
使用下面命令安装,可以将名字改成具体版本,这样避免系统多个Python版本存在而发生错误
# ./configure --prefix=/usr/local/python3.9.6
# ./configure --prefix=/usr/local/python3.9.6
# make
# make install
转到python路径,创建一个软连接,方便后续全局操作
cd /usr/local/python3.9.6/
ln -s /usr/local/python3/bin/python3.9.6 /usr/bin/python3.9.6
安装uwsgi
pip install uwsgi
在与django同目录下新建一个uwsgi-miaomiao文件夹,下面是我的路径和配置,为了方便识别,我追加项目后缀在uwsgi配置文件,最后是配置uwsgi-miaomiao.ini
-miaomiao
-miaomiao-uwsgi
-uwsgi-2.0.20
-uwsgi-latest.tar.gz
-uwsgi-miaomiao.ini
-uwsgi.log
-uwsgi-pid
[uwsgi]
# python 解释器位置 (完整路径) (需要大家按照自己的改一下) whereis python 查找路径
pythonpath = /usr/local/python3
#. uwsgi 端口
http-socket = 0.0.0.0:8000
#http = 0.0.0.0:8080
# 项目云服务器的目录 (需要大家按照自己的改一下)
chdir = /usr/miaomiaoWorkpalce/miaomiao/
# 项目中wsgi.py文件的目录,相对于项目根目录 (需要大家按照自己的改一下)
wsgi-file = /usr/miaomiaoWorkpalce/miaomiao/MiaoMiao/wsgi.py
#module = MiaoMiao.wsgi:application
# 开启master, 将会多开一个管理进程, 管理其他服务进程
master = true
buffer-size = 65536
# 工作进程数
processes = 4
# 每个工作进程的线程数
threads = 2
# 指定日志文件(会自动创建)。这个很重要,如果uwsgi出现错误,可以通过日志文件来查错
daemonize = /usr/miaomiaoWorkpalce/uwsgi-miaomiao/uwsgi.log
pidfile=/usr/miaomiaoWorkpalce/uwsgi-miaomiao/uwsgi.pid
static-map = /static=/usr/local/python3/lib/python3.9/site-packages/django/contrib/admin/static
static-map = /static=/usr/local/python3/lib/python3.9/site-packages/ckeditor/static
static-map = /static=/usr/local/python3/lib/python3.9/site-packages/rest_framework/static
static-map = /static=/usr/miaomiaoWorkpalce/miaomiao/static
启动uwsgi,启动后就会生成上面的uwsgi路径
uwsgi-miaomiao --ini uwsgi-miaomiao.ini # 启动uwsgi的django项目
# [uWSGI] getting INI configuration from uwsgi.ini 出现这个提示正常
# uwsgi --stop uwsgi.pid # 关闭uwsgi
nginx部署
yum -y install nginx
# 修改配置
vim /etc/nginx/nginx.conf
# 修改完保存退出
user root;
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 100m;
sendfile on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name 服务器IP;
charset utf-8;
client_max_body_size 100m;
location / {
# root html;
# root /usr/miaomiaoWorkpalce/miaomiao/templates;
#index index.html index.htm;
proxy_pass http://服务器IP:8000/;
client_max_body_size 100m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
启动nginx
systemctl start nginx