Django 项目部署 nginx + uwsgi + Miniconda

Django 项目部署 nginx + uwsgi + Miniconda,第1张

我的测试环境
  • 腾讯云服务器 标准型S5 - 1核 2G
  • *** 作系统:CentOS 7.9 64位
  • Python==3.8
  • Django==2.2.12
  • Miniconda
  • 我的 Django 项目路径: /data/wwwroot/managesystem
  • 环境路径:/usr/local/miniconda3/envs/ky
说明:

        以下步骤都是ROOT权限执行


1 安装Miniconda3教程

Miniconda3的相关 *** 作在下面的链接中。


      Linux安装Minicondahttps://blog.csdn.net/Sober_Trunk/article/details/124069646


下载安装脚本

下载到:/data/目录

cd /data/
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
执行脚本安装
bash Miniconda3-latest-Linux-x86_64.sh
# 阅读说明
# 选择安装目录
/usr/local/miniconda3
# 安装完成
source /usr/local/miniconda3/etc/profile.d/conda.sh
测试安装结果 查看版本
conda -V
创建环境

        环境名为ky,python版本为3.8

#conda create -n 环境名 python=版本号
conda create -n ky python=3.8
激活环境
#conda activate 环境名
conda activate ky

激活成功后最前面会显示环境名,如图

安装包

根据个人项目的需要,安装包

#安装django
pip install django==2.2.12
查看安装
pip list
 2 配置项目静态文件 修改项目的 setting.py
DEBUG = False

ALLOWED_HOSTS = ['*']

STATIC_ROOT = os.path.join(BASE_DIR,'static')  #静态文件收集 配置路径且将 STATICFILES_DIRS  注释
收集静态文件
python manage.py collectstatic
验证环境是否能启动项目
python3 manage.py runserver 0.0.0.0:80

3 系统软件包 更新系统软件包
yum update -y
安装软件管理包和可能使用的依赖
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
4 redis安装

        本人习惯将安装包放在/data/目录下,大家可以根据个人习惯放在自己指定的路径下,自己记住别忘了就行,之后的 *** 作下载安装包也都下载了/data/目录下

#下载安装包
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
解压安装包并安装
tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install
5 配置uwsgi 安装uwsgi
pip install uwsgi
配置uwsgi,在项目根目录下(manage.py同层目录),新建uwsgi.ini

新建uwsgi.ini

vim uwsgi.ini
将以下内容写入
# mysite_uwsgi.ini file

[uwsgi]

# Django-related settings
# 项目根目录的路径
chdir           = /data/wwwroot/managesystem                
# Django's wsgi file
wsgi-file       = managesystem/wsgi.py
#module = wtp_02.wsgi:application
# uwsgi服务器的角色
master=True
# 进程7数
processes=4
# 线程数
threads=2
# 存放进程编号的文件
pidfile= uwsgi.pid
# the socket (use the full path to be safe
socket=0.0.0.0:8082
#http          = 127.0.0.1:8002

#stats = 127.0.0.1:9191
# ... with appropriate permissions - may be needed
#chmod-socket    = 664
# clear environment on exit
vacuum          = true
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。


我们以前的runserver是依赖终端的 daemonize=uwsgi.log # 虚拟环境的目录 virtualenv = /usr/local/miniconda3/envs/ky

启动uwsgi
uwsgi -i uwsgi.ini      # 启动
uwsgi --stop uwsgi.pid  # 停止

检查是否启动成功

tail -f uwsgi.log

成功运行,证明配置没有问题。


#再次启动
uwsgi -i uwsgi.ini      # 启动
6 配置nginx

进入 /data/ 目录下,执行下面命令

cd /data/
wget http://nginx.org/download/nginx-1.13.7.tar.gz

下载完成后,执行解压命令:

tar -zxvf nginx-1.13.7.tar.gz

进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

./configure
make
make install

nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。


cp nginx.conf nginx.conf.bak

打开nginx.conf,把原来的内容删除,直接加入以下内容:

user  root;
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;
        sendfile        on;
        keepalive_timeout  65;
        upstream django {
        #django项目的端口号 和uwsgi里面的端口号保存一致
            server 127.0.0.1:8082; # for a web port socket (we'll use this first)
        }
# configuration of the server
server {
# nginx服务的端口号 不用修改
listen 8001;
# the domain name it will serve for
# 这里可以填写你的ip地址或者域名
server_name *.*.*.*;
charset     utf-8;
  gzip on;
  gzip_disable "msie6";
  gzip_proxied any;
  gzip_min_length 1k;
  gzip_comp_level 4;
  gzip_types text/plain text/css application/json application/x-javascript text/javascript text/xml image/jpeg image/png image/gif;

# max upload size
client_max_body_size 75M;   # adjust to taste

# Django media
#location /media  {
#    alias /home/x/work/liebiao/lbpro/media;  # 指向django的media目录
#}

location /static {
    alias /data/wwwroot/managesystem/static; # 指向django的static目录
}

# Finally, send all non-media requests to the Django server.
location / {
    uwsgi_pass  django;
    include     uwsgi_params; # the uwsgi_params file you installed
}
}
}

配置完成后,启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf    #启动nginx

#另一种启动方式
sudo /usr/local/nginx/sbin/nginx # 开启

现在打开浏览器即可进行访问。


补充内容
sudo /usr/local/nginx/sbin/nginx -s stop # 关闭 nginx  
sudo pkill -f uwsgi -9 #杀掉uwsgi进程

实际开发过程中,一台服务器部署多个项目更加常见,以下文章可供参考。



同一个域名部署多个Django 项目 nginx + uwsgi + Minicondahttps://blog.csdn.net/Sober_Trunk/article/details/124081441

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/577891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)