(1)方式一:直接在终端指定配置信息
gunicorn -w 4 -b 127.0.0.1:5000 -D --access-logfile ./logs/log manage:app
(2)方式二:通过配置文件指定配置信息
vim /etc/gunicorn.conf
# coding: utf-8
# worker进程的工作方式。 有 sync, eventlet, gevent, tornado, gthread, 缺省值sync
worker_class = "gevent"
# 并行工作进程数
workers = 4
# worker_class是gthread模式时可用
# threads = 4
# 客户端最大同时连接数。只适用于eventlet, gevent工作方式。
worker_connections = 1000
# 监听内网端口5000【按需要更改】
bind = '127.0.0.1:5000'
# 设置守护进程【关闭连接时,程序仍在运行】
daemon = True
# 设置超时时间120s,默认为30s。按自己的需求进行设置
timeout = 120
# 设置访问日志和错误信息日志路径
accesslog = './logs/gunicorn.acess.log'
errorlog = './logs/gunicorn.error.log'
pidfile = './logs/gunicorn.pid'
gunicorn manage:app -c /etc/gunicorn.conf
(1)打开配置文件
sudo vim /etc/nginx/sites-enabled/default
(2)配置信息如下
server {
listen 80;
server_name 192.168.183.135; # nginx所在服务器真实ip
location / {
proxy_pass http://127.0.0.1:5000;
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-Proto $scheme;
}
}
(1)安装supervisor
sudo apt-get install supervisor
(2)创建目录,用于存放supervisor配置文件
sudo mkdir -p /etc/supervisor/
(3)导入supervisor配置文件
sudo -i
echo_supervisord_conf > /etc/supervisor/supervisord.conf
(4)修改supervisord.conf配置文件
sudo vim supervisord.conf
[unix_http_server]
file=/var/run/supervisor.sock
[inet_http_server] ; HTTP 服务器,提供 web 管理界面
port=127.0.0.1:9001
[supervisorctl]
serverurl=unix:///var/run//supervisor.sock
[include]
;单个程序
files = /etc/supervisor/conf.d/*.conf
(5)递归创建supervisor.sock文件,并修改权限
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
(6)创建管理我们程序的文件,名字随意,必须以.conf结尾
sudo vim /etc/supervisor/conf.d/myapp.conf
(7)信息如下
[program:myapp]
; 启动项目时运行的命令
command=gunicorn manage:app -c /etc/gunicorn.conf
; 项目绝对路径
directory=/home/ubantu/myproject/kesheer/kesheer
; 虚拟环境路径
enviroment=PATH="/home/ubantu/.virtualenvs/ihome/bin"
; 是否自动启动
autostart=true
; 程序意外退出是否自动重启
autorestart=true
; 自动重启间隔
startsecs=10
; 杀进程的信号
stopsignal=QUIT
; 向进程发出stopsignal后等待OS向supervisord返回SIGCHILD 的时间。若超时则supervisord将使用SIGKILL杀进程
stopwaitsecs=60
; 子进程的stdout的日志路径 输出日志文件
stdout_logfile= /home/ubantu/myproject/kesheer/kesheer/logs/supervisor.out.log
; 错误日志文件 当redirect_stderr=true。这个就不用
stderr_logfile= /home/ubantu/myproject/kesheer/kesheer/logs/supervisor.err.log
(8)启动项目
sudo supervisord -c conf/supervisord.conf
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
sudo unlink /var/run/supervisor.sock
或
sudo unlink /tmp/supervisor.sock