Nginx+uWSGI+Supervisor配置

系统是Ubuntu16

Nginx

  1. 安装nginx
sudo apt-get install nginx 
  1. nginx的操作
sudo service nginx start
sudo service nginx stop
sudo service nginx restart
  1. 测试nginx是否能用

在浏览器输入服务器的ip地址,出现nginx欢迎界面,说明启动成功

  1. 配置nginx

默认配置文件是/etc/nginx里的nginx.conf,不用管

/etc/nginx/conf.d下添加一个新的配置文件

cd /etc/nginx/conf.d
nano bbs_nginx.conf

编辑内容如下

# bbs 是项目名
upstream bbs {
    # 指向项目目录下的 socket 文件
    # 这个文件在运行的时候会自动生成
    server unix:///home/bbs/bbs.sock;
}

server {
    listen      80;
    server_name 本机ip或域名;
    charset     utf-8;

    # 最大的上传大小
    client_max_body_size 75M;

    location / {
        # 指定访问哪个 upstream
        uwsgi_pass  bbs;
        # 从 /etc/nginx 下复制一份 uwsgi_params 到项目目录下
        # 可能要先安装 uwsgi 才会有这个文件
        include     /home/bbs/uwsgi_params;
    }
}
  1. 写完配置文件后,测试是否正确
sudo service nginx configtest

uWSGI

  1. 安装uwsgi

注意要用pip3来装而不是pip,不然会报no module named site的错误

uwsgi绝对是我在部署的时候碰到过的最恶心的坑

sudo apt-get install libpcre3 libpcre3-dev
sudo pip3 install uwsgi
  1. 配置uwsgi

在项目目录下新建一个配置文件

cd /home/bbs
nano bbs_uwsgi.ini

编辑内容如下

[uwsgi]
# 目录的路径
chdir           = /home/bbs
# 项目的虚拟环境路径
home            = /home/venv/py3
# 模块,这个没搞懂,写启动文件的名字好了
module          = wsgi
master          = true
processes       = 8
# socket 文件路径,和上面 nginx 指定的是一个东西
socket          = /home/bbs/bbs.sock
# 指定需要启动的文件
wsgi-file       = /home/bbs/wsgi.py
# 启动文件里 flask 实例的名称
callable        = app
chmod-socket    = 666
  1. 通过uwsgi拉起项目

因为配置是和nginx相关的,所以要先启动nginx

sudo service nginx start

再通过配置文件启动uwsgi

uwsgi --ini bbs_uwsgi.ini

在浏览器里访问ip地址,应该就有结果了

Supervisor

  1. 安装supervisor
sudo pip install supervisor
  1. 配置supervisor

在项目目录下新建一个配置文件

cd /home/bbs
nano bbs_supervisor.conf

编辑内容如下

# supervisor 的程序名称
[program:app]
# supervisor 执行的命令
command=uwsgi --ini bbs_uwsgi.ini
# 项目的目录
directory = /home/bbs
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
# 输出的 log 文件位置,要新建 log 文件
stdout_logfile=/home/bbs/log/supervisord.log
# 输出的错误文件位置
stderr_logfile=/home/bbs/log/supervisord.err

[supervisord]
loglevel=debug

# 使用 supervisorctl 的配置
[supervisorctl]
serverurl = http://127.0.0.1:9001
username = admin
password = 123

[inet_http_server]
port = :9001
username = admin
password = 123

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
  1. 使用supervisor运行uwsgi
supervisord -c bbs_supervisor.conf
  1. 使用supervisorctl管理supervisord
supervisorctl -c bbs_supervisor.conf

常用命令

> status    # 查看状态
> start program_name    # 启动程序
> restart program_name    # 重新启动程序
> stop program_name    # 停止程序
> reload    # 重新加载配置文件
> quit    # 退出当前的客户端

status能查看程序的状态

文档:

http://liyangliang.me/posts/2015/06/using-supervisor/

原文地址:https://www.cnblogs.com/xb21/p/8386081.html

时间: 2024-08-29 15:03:46

Nginx+uWSGI+Supervisor配置的相关文章

Nginx+uwsgi+supervisor+Ubuntu+flask

Nginx+uwsgi+supervisor+Ubuntu+flask Nginx+uwsgi+supervisor在Ubuntu上部署flask应用 网上找了许多讲关于Flask应用部署的文章几乎都是一个helloworld的Demo,按照helloworld来部署都没问题,但实际项目部署时还是遇到了不少问题.在这里简单写下自己成功部署的过程,防止下次部署时就忘记了,好记性不如烂笔头这句话不是盖的. 部署环境: OS: Ubuntu 14.04.4 LTS Python: 2.7.6 Ngin

webpy+nginx+uwsgi安装配置

转:(1)安装Nginx1.1 下载nginx-1.0.5.tar.gz并解压1.2 ./configure (也可以增加--prefix= path指定安装路径)此时有可能会提示缺少pcre支持,如果要安装pcre的话可以通过 yum install pcre-devel 来实现安装1.3 make1.4 make install (2)安装uWSGI2.1 下载uwsgi-0.9.8.2.tar.gz并解压2.2 make在安装uWSGI的时候有可能提示说是libxml2不存在,针对此情况,

Django Nginx+uwsgi 安装配置

Django Nginx+uwsgi 安装配置 在前面的章节中我们使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttpd等,本文将以 Nginx 为例. 安装基础开发包 Centos 下安装步骤如下: yum groupinstall "Development tools" yum install zlib-devel bzip2-deve

nginx +uwsgi + django配置

一 安装 nginx 二 安装 uwsgi  ,pip install uwsgi 三 配置nginx 打开 nginx.conf文件, location / { # root html; # index index.html index.htm; include uwsgi_params; uwsgi_pass 127.0.0.1:9090; } 相应位置如上配置,其中uwsgi_pass是用于nginx和uwsgi通信的端口,不可直接访问 四 建立测试文件test.py ,测试uwsgi是否

nginx+uwsgi+django 配置3

在uwsgi和django配置连接成功后,开始部署正式的业务. uwsgi.xml  和 manage.py  在同一个目录下 supervisor pip install  supervisor  安装supervisor echo_supervisord_conf > /路径supervisord.conf supervisord  开启 先弄懂两个命令: supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令 supervisorctl:启

Nginx+UWSGI+Django配置全过程

重度参阅 原理+实战http://zhou123.blog.51cto.com/4355617/1688434 原理http://www.cnblogs.com/fnng/p/5268633.html 轻微参阅:http://www.ziqiangxuetang.com/django/django-nginx-deploy.htmlhttps://github.com/binbin91/oms/blob/master/install.txthttp://binbin158.blog.51cto.

python Django Nginx+uwsgi 安装配置

基础包安装 yum install -y bind-utils traceroute wget man sudo ntp ntpdate screen patch make gcc gcc-c++ flex bison zip unzip ftp net-tools --skip-broken 安装python 下载XZ compressed source tarball    Python-3.5.3.tar.xz 到 /usr/local/src cd /usr/local/src; tar

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

wsgi 全称web server gateway interface,wsgi不是服务器,也不是python模块,只是一种协议,描述web server如何和web application通信的规则.运行在wsgi上的web框架有bottle,flask,django uwsgi 和wsgi一样是通信协议,是uWSGI服务器的单独协议,用于定义传输信息的类型 uWSGI 是一个web服务器,实现了WSGI协议,uwsgi协议.a nginx web服务器,更加安全,更好的处理处理静态资源,缓存

nginx+uWSGI+django+virtualenv+supervisor部署发布web项目

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. wsgi是PythonWeb服务器网关接口(Web Server Gateway Interface),WSGI是作为Web服务器与Web应用程序或应用框架之间的一种低级别的接口,以提升可移植Web应用开发的共同点.WSGI是基于现存的[[CGI]]标准而设计的. Django是一个开放源代码的Web应用框架,由Python写成. Virtualenv指的的Python的虚拟环境