Flask+uwsgi+Nginx环境搭建

  1. 开源软件准备
    须要的软件列表:
    setuptools-33.1.1.zip
    Python-2.7.13.tgz
    pip-9.0.1.tar.gz
    nginx-1.10.3.tar.gz
    软件统一上传到/usr/local/src/下,python是使用本身编译的。
  2. Python安装

    先安装如下的软件(若是有的话,就能够不安装了,例如使用rpm -qa zlib-devel先查看下)
    yum install zlib-devel -y
    yum install openssl-devel -yhtml

    tar -zxvf解压
    ./configure --prefix=/usr/local/python #安装到/usr/local/python目录下。
    make 
    make installpython

  3. setuptool和pip安装
    unzip解压setuptool
    /usr/local/python/bin/python setup.py install

    tar -zxvf解压pip
    /usr/local/python/bin/python setup.py install
     
  4. flask和uwsgi安装
    使用pip安装flask和uwsgi
    /usr/local/python/bin/pip install flask
    /usr/local/python/bin/pip install uwsgi
  5. nginx安装

    先安装pcre-devel:
    yum install pcre-devel -ynginx

    ./configure --prefix=/usr/local/nginx
    make && make installflask

  6. nginx使用uwsgi配置

    cat /usr/local/nginx/conf/nginx.confbash

    #user  nobody;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       8080;
            access_log  /usr/local/nginx/logs/flask_access.log main;
            error_log /usr/local/nginx/logs/flask_error.log error;
            client_max_body_size 200M;
            location / {
                include      uwsgi_params;
                uwsgi_pass   unix:/dev/shm/uwsgi.sock;
                index  index.html index.htm;
            }
        }
    
    }


    启动nginx:
    /usr/local/nginx/sbin/nginx  -t
    /usr/local/nginx/sbin/nginx网络

    注意:uwsgi_pass   unix:/dev/shm/uwsgi.sock;须要和uwsgi的配置相对应!app

  7. uwsgi配置
    cat /root/uwsgi.ini
    [uwsgi]
    uid = root
    gid = root
    socket = /dev/shm/uwsgi.sock
    chmod-socket = 666
    enable-threads = true
    master = true
    plugins = /usr/local/python/bin/python
    vhost = true
    workers = 5
    max-requests = 1000
    pidfile = /var/run/uwsgi.pid
    daemonize = /var/log/uwsgi.log
    chdir = /root/ops_dev/
    module = ops_dev
    callable = app

    启动uwsgi,有些报错没什么事:
    /usr/local/python/bin/uwsgi /root/uwsgi.ini
    socket

  8. 编写测试样例进行测试

    cat /root/ops_dev/ops_dev.py测试

    # -*- coding: UTF-8 -*-
    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/', methods=['GET', 'POST'])
    def index():
        return 'Hello  world,Python ops_dev!'

    编写完须要重启uwsgi,开改动代码都须要重启uwsgi,直接使用pkill进行重启便可:
    pkill uwsgi

    访问http://localhost:8080/进行测试。


    访问日志记录(nginx和uwsgi的访问日志,可用来排错。):


    ui

 

最后附上本人的网络课堂地址,若有兴趣请点击: 实践哥

相关文章
相关标签/搜索