Django 项目部署 nginx + uwsgi + Miniconda

本文详细介绍了如何在腾讯云的CentOS服务器上部署Django项目,使用Nginx、uWSGI和Miniconda。首先通过Miniconda创建Python环境,然后配置项目静态文件,安装Redis,接着设置uWSGI和Nginx,最后通过安全组设置确保项目可以正常访问。
部署运行你感兴趣的模型镜像

我的测试环境

  • 腾讯云服务器 标准型S5 - 1核 2G
  • 操作系统:Ubuntu
  • Python==3.8
  • Django==2.2.12
  • Miniconda
  • 我的 Django 项目路径: /data/wwwroot/managesystem
  • 环境路径:/usr/local/miniconda3/envs/ky

说明:

        以下步骤都是ROOT权限执行

服务器初始化(大致粉刷)

在进行以下操作时,需进行必要的一些系统插件安装

sudo apt-get update
sudo apt-get upgrade

安装上传rz、下载sz工具

sudo apt-get install lrzsz

安装gcc g++的依赖库

sudo apt-get install libpcre3 libpcre3-dev

安装 pcre依赖库

sudo apt-get install zlib1g-dev

安装 ssl依赖库

sudo apt-get install openssl

1 安装Miniconda3教程

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

      Linux安装Minicondahttps://blog.youkuaiyun.com/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

出现以下内容说明,项目已正常运行,且环境已经配置完成!

 也可尝试在浏览器里输入服务器的公网IP地址加: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

conda install uwsgi       # 到对应环境安装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.youkuaiyun.com/Sober_Trunk/article/details/124081441

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值