nginx 官网 http://wiki.nginx.org/Main
uwsgi 官网 http://projects.unbit.it/uwsgi/wiki
安装nginx 比较懒 直接用的命令安装
ubuntu 下安装版本 1.1.19
sudo apt-get install nginx
cenos下 安装版本1.2.x忘记是多少了
yum install nginx
配置文件在/etc/nginx/nginx.conf
增加代码写在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
以上代码未经测试 如有问题 概不负责