有任何疑问欢迎QQ交流:2691216015
1. 首先弄懂下面几个东西的含义:
wsgi
uwsgi
gunicorn
supervisor
nginx
2.web之环境搭建
1) 创建虚拟环境:
virtualenv shan_env
source shan_env/bin/activate
2) 安装python 相关:
pip install -U bottle
pip install gevent
pip install gunicorn
3) index.py
from bottle import Bottle, run
app = Bottle()
@app.route('/')
@app.route('/hello')
def hello():
return "hello world"
@app.route('/login')
def login():
return "hello login"
#run(app, host='0.0.0.0', port=5003, debug=True)
4) 配置gunicorn:
# gunicorn.conf
# 并行工作进程数
workers = 4
# 指定每个工作者的线程数
threads = 2
# 监听内网端口5000
bind = '0.0.0.0:5003'
# 设置守护进程,将进程交给supervisor管理
daemon = 'false'
# 工作模式协程
worker_class = 'gevent'
# 设置最大并发量
worker_connections = 2000
# 设置进程文件目录
pidfile = '/var/run/gunicorn.pid'
# 设置访问日志和错误信息日志路径
accesslog = '/var/log/gunicorn_acess.log'
errorlog = '/var/log/gunicorn_error.log'
# 设置日志记录水平
loglevel = 'warning'
5) 通过gunicron启动web:
/home/user.dan/www/project_shan/shan_env/bin/gunicorn -c gunicorn.conf index:app
6)nginx 配置nginx.conf:
server {
listen 80;
root /home/user.dan/www/project_shan;
server_name shan.com;
access_log /home/user.dan/logs/access.log;
error_log /home/user.dan/logs/error.log;
location / {
proxy_pass http://127.0.0.1:5003;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
7)supervisor使用进程管理:
/etc/supervisor/conf.d/shan.ini
[program:shan]
command=/home/user.dan/www/project_shan/shan_env/bin/gunicorn -c gunicorn.conf index:app
directory=/home/user.dan/www/project_shan
autostart=true
environment=LANG="en_US.utf8", LC_ALL="en_US.UTF-8", LC_LANG="en_US.UTF-8"
/usr/bin/python2.7 ./supervisord
supervisorctl status
supervisorctl stop shan
supervisorctl update
#更新新的配置到supervisord
supervisorctl update
#重新启动配置中的所有程序
supervisorctl reload
#启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
有任何疑问欢迎QQ交流:2691216015