linux下搭建nginx,uwsgi和python的flask和django网站

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


安装uwsgi # easy_install是通过安装setuptools获得

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

以上代码未经测试 如有问题 概不负责

你可能感兴趣的:(nginx,linux,django,python,socket)