supervisor的控制uwsgi+Nginx启动Django项目

项目部署,环境准备

1.python3虚拟环境准备

2.安装uwsgi
pip3 install uwsgi 


3.通过uwsgi启动django项目

    1.进入项目的第一层
    cd  mydjango118 
    2.执行命令启动django
    uwsgi --http  :8000 --module  mydjango118.wsgi
    
4.热加载uwsgi 命令如下
uwsgi --http :8088 --module mysite.wsgi --py-autoreload=1 

5.通过配置文件,启动uwsgi
这个文件叫做 uwsgi.ini 

#手动创建这个配置文件,写入如下信息

[uwsgi]
# Django-related settings
# the base directory (full path)
#这里写入项目的绝对路径
chdir           = /opt/mydjango118
# Django's wsgi file
#写入django的第二层文件夹,和wsgi.py文件
module          = mydjango118.wsgi
# the virtualenv (full path)
#虚拟环境的绝对路径
home            = /root/Envs/myuwsgi
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 5
#如果你没用nginx,想直接访问django后台,可以使用http协议
#http = 0.0.0.0:8000
#如果你用了nginx进行反向代理,请使用socket协议,注释掉http协议
#如果你用了nginx进行反向代理,请使用socket协议,注释掉http协议
#如果你用了nginx进行反向代理,请使用socket协议,注释掉http协议
socket          = 0.0.0.0:8000


# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

6.nginx结合uwsgi 启动
    1.修改nginx配置 nginx.conf如下
            #是nginx进行反向代理
         

  location / {
                include  uwsgi_params;
                uwsgi_pass 0.0.0.0:8000;
            }
            #http://192.168.11.250/static/admin/css/base.css
            #当请求url,从static路径开始时,我们就让他去找某一个文件夹
            #解决静态文件的配置方式
            
            location  /static {
                alias /opt/aceCrmStatic;
            }

    2.修改django的settings.py,收集静态资源 
        1.修改settings.py如下
           

 STATIC_ROOT="/opt/aceCrmStatic"
            STATIC_URL = '/static/'
            STATICFILES_DIRS = [
            os.path.join(BASE_DIR, 'static')
        ]


    3.使用命令收集django的静态文件
    (在项目文件加下执行)python3 manage.py  collectstatic 
    
    
    4.此时静态页面配置完毕
    
#使用supervisro启动uwsgi,退出虚拟环境, 使用物理环境的python2去安装
1.安装supervisor
yum install python-setuptools
easy_install supervisor


2。安装完毕后,生成配置文件
 /etc/supervisord.conf
3.在配置文件中,添加任务,管理uwsgi

vim /etc/supervisord.conf #在最底行,写入配置如下

[program:s17uwsgi]
command=/root/Envs/myuwsgi/bin/uwsgi   --ini  /opt/mydjango118/uwsgi.ini # 两个绝对路径,根据自己的情况具体修改
stopasgroup=true      
killasgroup=true 

4.启动supervisor服务

supervisord -c  /etc/supervisord.conf 


5.通过命令管理任务,管理uwsgui

supervisorctl -c /etc/supervisord.conf

6。学习管理supervisor的命令

start 任务名
stop 任务名
stop all 
start all 
status 任务名 

转载于:https://www.cnblogs.com/Wj-Li/p/10864904.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是将最简单的 Flask 应用程序部署到 Docker 容器中的步骤: 1. 准备 Flask 应用程序代码 在本地创建一个 Python 虚拟环境,安装 Flask 库,并编写一个最简单的 Flask 应用程序。例如,创建一个名为 `app.py` 的文件,包含以下代码: ```python from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello, World!" if __name__ == "__main__": app.run(host='0.0.0.0', port=5000, debug=True) ``` 这个应用程序会在本地启动一个 Flask 服务器,监听在本地的 5000 端口上,并返回一个 "Hello, World!" 的响应。 2. 编写 Dockerfile 在本地项目根目录下创建一个名为 `Dockerfile` 的文件,并编写以下代码: ```Dockerfile FROM nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04 # 安装系统依赖 RUN apt-get update && apt-get install -y nginx supervisor # 安装 Python 和 pip RUN apt-get install -y python3 python3-pip # 安装 Flask 库 RUN pip3 install Flask uwsgi # 拷贝应用程序代码到容器中 COPY app.py /app/ # 配置 Nginx RUN rm /etc/nginx/sites-enabled/default COPY nginx.conf /etc/nginx/sites-enabled/ # 配置 Supervisor COPY supervisor.conf /etc/supervisor/conf.d/ # 设置工作目录 WORKDIR /app # 启动 NginxSupervisor CMD ["supervisord", "-n"] ``` 这个 Dockerfile 使用了 nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04 作为基础镜像,并安装了系统依赖、Python 和 Flask 库。然后,将应用程序代码拷贝到容器中,并配置了 NginxSupervisor。 3. 编写 Nginx 配置文件 在本地项目根目录下创建一个名为 `nginx.conf` 的文件,并编写以下代码: ```nginx server { listen 80; server_name localhost; location / { uwsgi_pass unix:///tmp/uwsgi.sock; include uwsgi_params; } } ``` 这个 Nginx 配置文件会监听容器的 80 端口,并将请求转发给 uWSGI。 4. 编写 Supervisor 配置文件 在本地项目根目录下创建一个名为 `supervisor.conf` 的文件,并编写以下代码: ```ini [supervisord] nodaemon=true [program:nginx] command=/usr/sbin/nginx -g "daemon off;" autostart=true autorestart=true [program:uwsgi] command=uwsgi --socket /tmp/uwsgi.sock --chmod-socket=666 --module app:app --callable app --master --processes 4 --threads 2 autostart=true autorestart=true ``` 这个 Supervisor 配置文件会启动 NginxuWSGI,并自动重启它们。 5. 构建 Docker 镜像 在终端中进入项目根目录,执行以下命令构建 Docker 镜像: ```bash docker build -t myflaskapp . ``` 其中,`myflaskapp` 是你给容器命名的名称。 6. 运行 Docker 容器 执行以下命令启动 Docker 容器: ```bash docker run -d --name myflaskapp -p 80:80 myflaskapp ``` 其中,`myflaskapp` 是容器的名称,`-p 80:80` 表示将容器的 80 端口映射到主机的 80 端口。 7. 测试 Flask 应用程序 在浏览器中访问 `http://localhost`,应该可以看到 "Hello, World!" 的响应。 这样就完成了将最简单的 Flask 应用程序部署到 Docker 容器中的过程。同时,使用了 uWSGI + Nginx + Supervisor 将其部署到生产环境中,实现了更好的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值