环境
一台centos7 python3 的服务器(初步部署使用docker)
一台mysql5.7的服务器
一台redis服务器
一台rabbitMQ 服务器
(作者使用的是docker镜像实验)

简单讲解一下,大概思路。
将开发好的项目上传到gitlab,在服务器将项目跑起来,mysql做存储,redis,rabbteMQ做异步(Celery).利用uwsgi将服务启动,nginx反向代理,加载静态文件
创建docker网络,使服务之间互相通信
docker network create jumpserver-test
docker run -dit -p 2222:22 -p 8000:80 --name django_test --network jumpserver-test centos7-python3.7
docker run -d -p 6379:6379 redis:alpine --network jumpserver-test
docker run -d -p 5672:5672 --name rabbitmq --network jumpserver-test rabbitmq
docker run -d -p 8001:80 --name nginx_server --network jumpserver-test nginx:alpine3.8
在django_test这个容器将你的服务部署
git clone (git的链接)
pip3 下载你所需要的模块
配置settings.py
redis , rabbiteMQ ,mysql
处理 Django 项目的静态文件
生成静态文件,nginx加载
首先在 Django 项目的 settings.py
文件中添加如下内容:
STATIC_ROOT = os.path.join(BASE_DIR,"allstatic")
再在项目的主目录下执行如下命令:
记得要切换到项目的虚拟环境下执行
python3 manage.py collectstatic
执行完这个命令,Django 会搜集项目中所有的静态文件,并将其拷贝到 STATIC_ROOT 指定的目录下。
再在项目的配置文件settings.py中,注释以下内容
#STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static'),
#]
处理完毕项目的静态文件之后, 就可以让后面提到的 uwsgi 或者 nginx 中的任何一个很方便的使用了
uwsgi
pip3 install uwsgi
在项目根目录创建conf/*.ini
*.ini文件
[uwsgi]
chdir = /opt/cmdbteam/adminIE/
socket = django_test:80 (服务ip:端口)
#http = django_test:80 #
#static-map = /static=/cmdb/SharkAPAMP/allstatic
module = adminIE.wsgi(项目名字指定)
master = true
processes = 6
vacuum = true
启动
uwsgi --ini 你的这个ini文件的具体路径/qf_uwsgi.ini
nginx
将静态文件传到nginx服务器
docker cp django_test:/opt/cmdbteam/adminIE/allstatic .
docker cp allstatic nginx_server:/
*.conf文件
upstream django {
server 172.21.0.2:80; # 服务地址
}
server {
listen 80;
server_name nginx_server;
charset utf-8;
client_max_body_size 75M; # adjust to taste
location /static {
alias /allstatic; # 指向django的static目录
}
location / {
uwsgi_pass django; # django 和 upstream django 对应
include uwsgi_params; # the uwsgi_params file you installed
}
}
mysql
设置mysql root密码
docker run -d --name mysql_django --network jumpserver-test -e MYSQL_ROOT_PASSWORD=QFedu123! mysql/mysql-server:5.7
创库,授权
网友评论