nginx 官网 http://wiki.nginx.org/Main
uwsgi 官网 http://projects.unbit.it/uwsgi/wiki
安装nginx 比较懒 直接用的命令安装
ubuntu 下安装版本 1.1.19
sudo apt-get install nginx
yum install nginx
增加代码写在nginx.conf或者单独文件include都可以 修改之前确实nginx 能运行 centos要加在nginx.conf的http的最后
server { listen 8080; server_name localhost; location / { include uwsgi_params; uwsgi_pass unix:///tmp/teamhelp.socket;; } }
修改后暂时不运行nginx
sudo easy_install uwsgi一定要确认uwsgi版本
nginx --version 查看 1.2.5 以上 否则没有module等参数
建立Flask项目
myapp/myapp.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return "Hello World!" if __name__ == '__main__': app.run()
配置uwsgi前请确认项目可以运行
通过uwsgi配置myapp项目
uwsgi配置参数支持 xml ini yaml 我写了一个ini 其他可以参考文档
uwsgi.ini
[uwsgi] ; 直接通过http方式的8080端口打开项目 主要用于测试uwsgi可用 socket = 127.0.0.1:8080 protocol=http master = true ; pp和chdir配置项目路径都可以运行 pp = /.../myapp module = app;django module = xxx.wsgi ; 停止和重载需要的id pidfile = /var/run/uwsgi_pidfile.id ; 开启4个线程 workers = 4; ; 杀掉超过8秒的请求 reload-mercy = 8 ; automatically remove unix socket and pidfiles on server exit vacuum = true ; uwsgi logs 开启后终端不在显示日志信息 daemonize = /var/log/uwsgi.log ; 给线程起一个别名 procname-prefix-spaced = myapp ; enable memory usage report. This will print in the request log information about RSS and address space usage. memory-report = true如果配置文件修改完成
执行下面命令 然后打开 127.0.0.1:8080即可看到hello world
uwsgi --ini uwsgi.ini通过别名查询进程 强制杀掉master进程
ps aux|grep myapp kill -9 xxx查询到的id
停止uwsgi和重载uwsgi通过master id
uwsgi --stop /var/run/uwsgi_pidfile.id uwsgi --reload /var/run/uwsgi_pidfile.id可以测试一些其他参数的使用
配置django项目同样
修改pp为项目路径 module为manage就可以配置nginx uwsgi
修改
socket = 127.0.0.1:8080 protocol=http
socket = /tmp/uwsgi.sock ; 生成的uwsgi.sock的权限 否则uwsgi.sock和nginx会产生权限问题 chmod-socket = 666
以上代码未经测试 如有问题 概不负责