nginx+django+gunicorn+gevent+supervisor

安装环境介绍:

python2.7.10

django1.7.9

linux CentOS release 6.5 (Final) 64

假设我的项目位置为/var/www/myweb

服务器IP为192.168.0.100

1、插件安装

gunicorn-19.7.1   uwsgi组件

gevent-1.2.1    异步组件

greenlet-0.4.12  异步组件

supervisor-3.3.0 进程管理组件

直接下载然后运行 对应的 python setup.py install

2、myweb wsgi 配置

位置: /var/www/myweb/wsgi.py

import sys

import os

p = os.path.abspath(os.path.dirname(__file__))

sys.path.insert(0, os.path.split(p)[0])

os.environ["DJANGO_SETTINGS_MODULE"] = "settings"

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

3、运行 gunicorn

cd /var/www/myweb

/usr/local/python/bin/gunicorn -w 4 -k gevent -m 0002 -b 0.0.0.0:8000 --error-logfile /var/log/gunicorn/myweb_gunicorn_error.log wsgi:application

-w 启动多少个工作进程,可以根据CPU的个数开启,一个CPU开一个

-k 工作进程类

-m umask权限

-b 地址端口配置

wsgi:application wsgi实例

对于直接运用gunicorn不通过supervisor的话,可以守护的方式启动,加入参数 -D

/usr/local/python/bin/gunicorn -w 4 -k gevent -m 0002 -b 0.0.0.0:8000 --error-logfile /var/log/gunicorn/myweb_gunicorn_error.log -D wsgi:application

可以通过 gunicorn -h 查看更多配置参数

确保8000端口,防火墙已经开启

通过 http://192.168.0.100:8000 访问

4、nginx的安装与配置

为了提高网站的效率,对于静态文件通过nginx发送,

其他应用URL转发到gunicorn启动的进程

安装:

./configure

make

make install

配置:

server {

listen       8080;

location / {

proxy_connect_timeout 600;

proxy_send_timeout 600;

proxy_read_timeout 600;

server_name_in_redirect off;

proxy_set_header Host $host:$server_port;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size    300m;

proxy_pass http://127.0.0.1:8000;

}

location /media/ {

alias /var/www/myweb/static/;

}

location /static/ {

alias /var/www/myweb/static/;

}

}

sudo /usr/local/nginx/sbin/nginx -s reload

确保8080端口,防火墙已经开启

通过 http://192.168.0.100:8080 访问

5、 supervisor 方式部署gunicorn

守护方式运行,也为了后续维护,

比如修改参数,启动,停止等,supervisor都非常方便

/etc/supervisor/conf.d 下新增 gunicorn.conf

[program:myweb_gunicorn]

directory=/var/www/myweb

command=/usr/local/python/bin/gunicorn -w 4 -k gevent -m 0002 -b 0.0.0.0:8000 --error-logfile /var/log/gunicorn/myweb_gunicorn_error.log  wsgi:application

autostart = true

startsecs = 5

user=myuser

redirect_stderr = true

stdout_logfile_maxbytes = 20MB

stdout_logfile_backups = 20

stdout_logfile =/var/log/gunicorn/myweb_gunicorn.log

特备注意,改了gunicorn.conf一定要重新加载配置,否则重启不生效

/usr/local/python/bin/supervisorctl reload myweb_gunicorn

#重启服务

/usr/local/python/bin/supervisorctl restart myweb_gunicorn

6、linux配置其他用户sudo权限启动

vim /etc/sudoers

myuser ALL=(ALL)       NOPASSWD: /usr/local/nginx/sbin/nginx

时间: 2024-10-24 16:09:07

nginx+django+gunicorn+gevent+supervisor的相关文章

Flask+Gunicorn+Gevent+Supervisor+Nginx生产环境部署

老毛病了,在用某个新框架或新架构之前,总得花时间谷歌和自己折腾一番,才能知道这个框架和架构的优缺点,才会发现自己最喜欢.用的最顺手的的一种.近期在学习python,这里记录一下自己用的一套python web开发的部署环境. 简介 之所以选择Flask,而没选择用的最多的django,是因为现在这个小项目是一个简单的web工具,提供上传文件.数据处理.并下载的功能.简单小巧,没必要折腾Django.而Flask正好是一个Python实现的Web开发微框架,它基于Werkzeug 和 Jinja2

django+nginx+supervisor+gunicorn+gevent 网站部署

django+nginx+supervisor+gunicorn+gevent 网站部署 django,nginx,supervisor,gunicorn,gevent这几个都是在本领域大名鼎鼎的软件,下面的部署都是在ubuntu12.04里面验证成功的! 首先是安装这些软件在ubuntu下面都比较简单,nginx和supservisor的安装如下 apt-get install nginx,supervisor 在ubuntu下使用python,强烈建议安装python-dev apt-get

gunicorn+gevent+django+nginx部署体验

两个字:简单! gunicorn gevent greenlet都是apt-get能够解决的事情 安装之后cd到目标目录,gunicorn --worker-class=gevent --workers=2 -b 0.0.0.0:8080 wsgi:application 基本就解决问题了 如果有静态文件要处理的话,要再apt-get一个nginx匹配下/static/路径交给服务器处理,django app专心处理逻辑 nginx加上缓存也是两三分钟的事情,就不多说了. 用gunicorn这种

使用Nginx+Gunicorn+virtualenv+supervisor来部署django项目

安装Virtualenv 终端下输入 sudo pip3 install virtualenv virtualenv 可以创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库. 下面是创建python3的虚拟环境 #创建ENV目录 [email protected]:~# cd ~ && mkdir ENV && cd ENV [email protected]:~/ENV# ls #创建python3虚拟环

Django + Gunicorn + Nginx 部署之路

前言 最近,我已经成功将我的个人网站从 Flask 迁移到 Django 了,最早接触 Django 的时候大概是在 4 年前,我记得那个时候 Django 中的路由配置使用 正则 来进行的,但是我有特别烦这个东西,所以就果断弃坑了.然后今年年初的时候,我用 Flask 写了一个我的个人网站,刚开始的时候功能还是比较简单,看着路由配置和部署规则都很方便,就果断采用了.但是后来我想添加的功能越来越多的时候,我发现我已经越来越难掌控它了,正好最近我稍微看了一下 Django 这几年的变化,最新的 2

Django + Gunicorn + Nginx 部署 Ubuntu 服务器

Django + Gunicorn + Nginx 部署服务器 获取腾讯云 root权限 本人的服务器使用的是腾讯云,腾讯云默认是没有开放 root 用户的,我们来创建 root 用户. 创建 root 账号并设置密码. sudo passwd root 设置 root 账户登录需要密码. sudo vim /etc/ssh/sshd_config 修改 without-password 为 yes. PermitRootLogin yes 重启 ssh 服务. sudo service ssh

Nginx+Django+Uwsgi+php

在FreeBSD结合Nginx和FastCGI简单配置Django和PHP  http://blog.chinaunix.net/uid-11131943-id-3031767.html Nginx+Django+Uwsgi架构部署 http://www.linuxidc.com/Linux/2014-09/106928.htm

nginx + django on windows

It's quite simple to run django on nginx on windows. Here are some key steps to follow - 1. Download nginx/windows from http://nginx.org/en/download.html 2. Unzip the pckage (like nginx-1.7.2.zip) to a folder in your machine) 3. Install flup (fastcgi

[zz]阿里云计算:CentOS+nginx+Django+Postgresql web环境搭建

原文链接: http://www.cnblogs.com/AllStarGIS/p/3788518.html 参考链接: 1. http://www.cnblogs.com/zhouej/archive/2012/03/25/2379646.html 2. http://ec58.com/archives/2836 最近在在万网和阿里云上分别购买了一个域名和一台云服务器,打算用来做点什么.昨天吃完晚饭稍作休息开始对这个新奇的玩意作了些了解并着手配置其运行环境,今早凌晨4点多才弄得7788,为此也