python后端部署_Django后端部署详细

python后端部署_Django后端部署详细后端部署文档所用技术:nginxuwsgisupervisordaphnecelerypython3.6技术讲解python3.6安装依赖:sudoaptinstallopenssl*zlib*从官网下载源码:sudo

后端部署文档

所用技术:

nginx

uwsgi

supervisor

daphne

celery

python3.6

技术讲解

python3.6

安装依赖: sudo apt install openssl* zlib*

从官网下载源码:sudo wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

解压:sudo tar -xzvf Python-3.6.8.tgz

进入源码目录:cd Python-3.6.8

安装到/usr/local/python目录,不用事先创建python目录:

sudo ./configure –prefix=/usr/local/python # –prefix指定目录

编译:sudo make

安装:sudo make install

创建python与pip软连接

sudo ln -s /usr/local/python/bin/python3.6 /usr/bin/python

sudo ln -s /usr/local/python/bin/pip3.6 /usr/bin/pip

注意:若是python未添加到环境变量的话需要将其用到的模块创建软连接

celery

安装:pip install celert

创建软连接:sudo ln -s /usr/local/python/bin/celery /usr/bin/celery

nginx

安装: sudo apt-get install nginx

运行: sudo /etc/init.d/nginx restart (根据nginx具体位置)

验证:打开浏览器–>IP:80–>Welcome to Nginx! (出现则表示成功)

uwsgi:

安装: sudo pip3 install uwsgi

验证:uwsgi –http :8000 –chdir project(项目名)/ –module uwsgiproject.wsgi

###### `注意:uwsgiproject.wsgi是你自己的配置的uwsgi文件,一定要具体到此文件的位置`

daphne :

安装:sudo pip3 install daphne

运行:daphne -p 8001 -b 127.0.0.1 project.asgi:application

注意:daphne 主要为ws请求和channels配合,形成聊天功能,如果项目中没有channels可以不配置

supervisor:

[supervisor是一个Linux/Unix系统上的进程监控工具,supervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启]

安装: pip3 install supervisor

配置软连接: ln -s /usr/local/python3/bin/supervisord /usr/bin/supervisord

启动:supervisord -c /etc/supervisord.conf

1.配置nginx(配置文件):

1.1添加配置文件

cd /etc/nginx/sites-enabled 或者 cd /etc/nginx/conf.d

#注意:如果需要在其他地方添加配置文件请在 /etc/nginx/nginx.conf 文件中添加具体内容请百度

sudo vim project.conf #project 明明随意,一般命名为项目名

1.2具体内容

#具体内容

server{

# 监听本项目端口,浏览器输入的端口

listen 8000;

server_name owd.com;

charset utf-8;

client_max_body_size 75M;

# 收集项目静态文件路径

location /static{

alias project/static; # 静态文件目录

}

# 和uwsgi通信端口和项目通信文件uwsgi_params

location /api{

include uwsgi_params;

uwsgi_pass 127.0.0.1:8001; #此端口为和uwsgi通信的端口

}

#把所有ws开头的请求转发给daphne 如果没有daphne可去除此location

location /ws {

proxy_pass http://127.0.0.1:8002 #此为和daphne通讯的端口

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection “upgrade”;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Host $server_name;

}

}

1.3重启nginx服务

#重启nginx服务

sudo /etc/init.d/nginx restart

#或

service nginx restart

2.配置uwsgi(配置文件)

2.1拷贝uwsgi_params文件到项目目录

#拷贝uwsgi_params文件到项目目录

cp /etc/nginx/uwsgi_params /home/project/

2.2创建uwsgi配置文件

mkdir uwsgi #最好在项目根目录下

cd uwsgi

vim uwsgi.ini #uwsgi命名随意

2.3具体内容

#具体内容

[uwsgi]

# 和nginx通信的端口

socket=127.0.0.1:8001

# 项目路径

chdir=/home/codfish

# wsgi.py路径

wsgi-file=codfish/wsgi.py

# 进程数

processes=4

# 线程数

thread=2

# 本项目占用uwsgi端口

stats=127.0.0.1:8081

3.配置daphne(配置文件asgi.py)

3.1内容如下

# 项目/settings和wsgi.py的同目录下创建asgi.py

#内容如下

“””

ASGI entrypoint. Configures Django and then runs the application

defined in the ASGI_APPLICATION setting.

“””

import os

import django

from channels.routing import get_default_application

os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “project.settings”) #project为项目名

django.setup()

application = get_default_application()

3.2启动daphne服务测试

#启动daphne服务测试(在项目根目录下)

daphne -p 8991 project.asgi:application

#or

daphne -b 127.0.0.1 -p 8991 project.asgi:application

4.配置supervisord(配置文件)

#配置文件所在目录 /etc/ supervisord.conf

#配置daphne, 同时还配置了uwsgi,可以根据需求进行具体配置

#具体内容如下

[supervisord]

nodaemon=true

[supervisorctl]

#daphne配置,如果没有可以删除

[program:daphne]

directory=project #项目目录 (绝对路径)

command=daphne -b 127.0.0.1 -p 8001 –proxy-headers project.asgi:application #启动命令 project为项目名

#8001端口请和nginx与daphne通讯的端口相同

autostart=true

autorestart=true

stdout_logfile=/www/wwwroot/haomai/haomai/websocket.log #日志 请自定义日志位置

redirect_stderr=true

#uwsgi配置 如果没有可以删除

[program:uwsgi]

directory=project #uwsgi配置文件目录 (绝对路径)

command=uwsgi –ini uwsgi.ini #启动命令 uwsgi.ini 为你的uwsgi的配置文件

autostart=true

autorestart=true

stdout_logfile=/www/wwwroot/haomai/haomai/uwsgi.log #日志 请自定义日志位置

redirect_stderr=true

[program:celery.worker]

;指定运行目录

directory=/home/lzz/Desktop/CodFish

;运行目录下执行命令

command=celery -A CodFish worker -B

;启动设置

numprocs=1 ;进程数

autostart=true ;当supervisor启动时,程序将会自动启动

autorestart=true ;自动重启

;停止信号,默认TERM

;中断:INT (类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)

;终止:TERM (kill -TERM pid)

;挂起:HUP (kill -HUP pid),注意与Ctrl+Z/kill -stop pid不同

;从容停止:QUIT (kill -QUIT pid)

stopsignal=INT

;输出日志

stdout_logfile=/home/lzz/Desktop/log/celery_worker.log

stdout_logfile_maxbytes=10MB ;默认最大50M

stdout_logfile_backups=10 ;日志文件备份数,默认为10

;错误日志

redirect_stderr=false ;为true表示禁止监听错误

stderr_logfile=/home/lzz/Desktop/log/celery_worker_err.log

stderr_logfile_maxbytes=10MB

stderr_logfile_backups=10

4.1启动supervisor

#启动supervisor

supervisord -c /etc/supervisord.conf

4.2将supervisord加入了开机自启动设置

#创建supervisord.service

#我们在任意位置随便创建个这个文件,运行以下命令

touch supervisord.service

vim supervisord.service

#写入以下内容

#supervisord.service

[Unit]

Description=Supervisor daemon

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf

ExecStop=/usr/bin/supervisorctl shutdown

ExecReload=/usr/bin/supervisorctl reload

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

#将文件拷贝到/usr/lib/systemd/system/

cp supervisord.service /usr/lib/systemd/system/

#启动服务

systemctl enable supervisord

#验证一下是否为开机启动

systemctl is-enabled supervisord

#enabled为开机自启

5.fdfs以及docker安装

5.1docker安装

ubuntu安装:curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun

centOS安装:curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun

5.2fastdfs安装

pip install fdfs_client-py-master.zip # fdfs_client-py-master 安装包在文件夹内

pip install mutagen

pip isntall requests

sudo docker load -i 文件路径/fastdfs_docker.tar # fastdfs_docker安装包在文件夹内

5.3 docker 镜像安装

sudo docker run -dit –name tracker –network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

sudo docker run -dti –name storage –network=host -e TRACKER_SERVER=146.56.199.104:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage #IP地址需要更改

sudo docker container ls #查看已启动的镜像镜像

sudo docker container stop storage #停止镜像

sudo docker container rm storage #删除镜像

sudo docker container start storage #启动镜像

sudo docker container restart tracker #重启镜像

sudo docker exec -it tracker /bin/bash #进入镜像

sudo pkill -f daphne -9

sudo pkill -f uwsgi -9

sudo pkill -f celery -9

supervisord -c /etc/supervisord.conf

sudo docker container start storage

sudo docker container start tracker

celery -A CodFish worker -B

celery -A CodFish beat -l info

今天的文章python后端部署_Django后端部署详细分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68160.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注