我的测试环境说明:
- 腾讯云服务器 标准型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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)