资讯专栏INFORMATION COLUMN

nginx + gunicorn + supervisor 部署 django 项目

Pocher / 1301人阅读

摘要:写好项目后,要将项目部署到服务器上,可以采用,和的方式进行部署。安装虚拟环境当一台机器上部署多个项目的时候,各个项目依赖的包可能有冲突,互相影响。使用虚拟环境可以将各个项目的执行环境隔离,互不影响。

写好Django项目后,要将项目部署到服务器上,可以采用nginx,gunicorn和supervisor的方式进行部署。

安装虚拟环境

当一台机器上部署多个项目的时候,各个项目依赖的包可能有冲突,互相影响。使用虚拟环境可以将各个项目的执行环境隔离,互不影响。

安装virtualenv

  pip install virtualenv
安装virtualenvwrapper

为了简化virtualenv的操作,可以安装virtualenvwrapper,它简化了virtualenv的操作,并且将所有的虚拟环境放置到同一个目录下。

pip install virtualenvwrapper

然后配置WORKON_HOME
首先找到virtualenvwrapper.sh文件的路径

whereis virtualenvwrapper.sh

将路径添加到/etc/profile中

export WORKON_HOME=~/.virtualenvs // export 地址是以后虚拟环境放置的地址,可以自己选择
source /usr/local/bin/virtualenvwrapper.sh

然后使/etc/profile文件的配置生效

source /etc/profile

之后就可以使用啦

创建一个虚拟环境

mkvirtualenv project

切换到虚拟环境

workon project

退出虚拟环境

deactivate

删除虚拟环境

rmvirtualenv project
全局安装nginx

安装完成后添加项目的配置,新建.conf文件

server {
       listen 80; //端口
       server_name localhost ;//ip地址

       access_log /data/log/nginx-access.log; // 成功日志地址
       error_log  /data/log/nginx-error.log; // 错误日志地址

       keepalive_timeout 3600;
       client_max_body_size 5120M;

       location /static/ {
          alias /data/static; // 静态文件的地址
       }

       location / {
           include uwsgi_params;
           add_header Access-Control-Allow-Origin *;
           proxy_set_header Host $http_host;
           proxy_set_header X-Forward-HOST $server_name;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_redirect off;
           proxy_connect_timeout 3800s;
           proxy_read_timeout 3600s;
           proxy_http_version 1.1;
           proxy_set_header Connection "";
           proxy_pass http://127.0.0.1:80;
        }
  }

配置完成后测试正确性

nginx -t

配置完成后启动nginx:

/usr/local/nginx/sbin/nginx  -s reload // 前面是nginx安装地址
安装gunicorn

可以在虚拟环境中安装gunicorn

pip install gunicorn
安装supervisor

配置supervisor,新建.ini文件

command=/data/.virtualenvs/project/bin/gunicorn -w 3 -b 127.0.0.1:80 project.wsgi:application //切换到虚拟环境启动项目
directory=/data/project   // 切换到执行目录下
user=root
autostart=true
autorestart=true
startsecs=10
redirect_stderr=true
stderr_logfile=/data/log/stderr.log // 错误日志地址
stdout_logfile=/data/log/stdout.log // 正确日志地址
stopasgroup=true
stopsignal=QUIT

重启supervisor,载入新配置

supervisorctl update
supervisorctl reload

最后,整个部署就完成了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40615.html

相关文章

  • Ubuntu下部署Django应用

    摘要:配置这个启动其他方式安装七牛云由于网站的静态存储要用七牛云,在运行程序前要安装否则报错没有的方法。七牛云安装前注意安装的版本,我被坑过一次,写程序时是版本,部署时都了,接口全都不一样。还有推荐下这篇来自的部署实例 以下所有代码中的操作都需要在命令行运行 安装mysql apt-get update apt-get install mysql-server mysql-client 根据...

    tinysun1234 评论0 收藏0
  • 如何在 virtualenv 环境下搭建 Python Web

    摘要:生产环境下,自带的服务器,无法满足性能要求。配置前面我们已经在系统环境下安装了安装好的二进制文件放在文件夹下,接下来使用来管理。参考文章探针安装部署部署笔记在生产环境上部署使用详解本文系工程师编译整理。 由于字数的限制,其实本篇文章的全标题为 《如何在 virtualenv 环境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    roland_reed 评论0 收藏0
  • 如何在 virtualenv 环境下搭建 Python Web

    摘要:生产环境下,自带的服务器,无法满足性能要求。配置前面我们已经在系统环境下安装了安装好的二进制文件放在文件夹下,接下来使用来管理。参考文章探针安装部署部署笔记在生产环境上部署使用详解本文系工程师编译整理。 由于字数的限制,其实本篇文章的全标题为 《如何在 virtualenv 环境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    godiscoder 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<