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
sudo ./configure --prefix=/usr/local/python
# --prefix指定目录sudo make
sudo make install
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未添加到环境变量的话需要将其用到的模块创建软连接
sudo ln -s /usr/local/python/bin/celery /usr/bin/celery
sudo apt-get install nginx
sudo /etc/init.d/nginx restart
(根据nginx具体位置)打开浏览器-->IP:80-->Welcome to Nginx!
(出现则表示成功)sudo pip3 install uwsgi
uwsgi --http :8000 --chdir project(项目名)/ --module uwsgiproject.wsgi
###### `注意:uwsgiproject.wsgi是你自己的配置的uwsgi文件,一定要具体到此文件的位置`
sudo pip3 install daphne
daphne -p 8001 -b 127.0.0.1 project.asgi:application
[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
cd /etc/nginx/sites-enabled 或者 cd /etc/nginx/conf.d
#注意:如果需要在其他地方添加配置文件请在 /etc/nginx/nginx.conf 文件中添加具体内容请百度
sudo vim project.conf #project 明明随意,一般命名为项目名
#具体内容
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;
}
}
#重启nginx服务
sudo /etc/init.d/nginx restart
#或
service nginx restart
#拷贝uwsgi_params文件到项目目录
cp /etc/nginx/uwsgi_params /home/project/
mkdir uwsgi #最好在项目根目录下
cd uwsgi
vim uwsgi.ini #uwsgi命名随意
#具体内容
[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
# 项目/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()
#启动daphne服务测试(在项目根目录下)
daphne -p 8991 project.asgi:application
#or
daphne -b 127.0.0.1 -p 8991 project.asgi:application
#配置文件所在目录 /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
#启动supervisor
supervisord -c /etc/supervisord.conf
#创建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为开机自启
?
ubuntu安装:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
centOS安装:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
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安装包在文件夹内
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
原文:https://www.cnblogs.com/py2001/p/14169473.html