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 -y

    tar -zxvf解壓
    ./configure --prefix=/usr/local/python #安裝到/usr/local/python目錄下。
    make 
    make install

  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 -y

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

  6. nginx使用uwsgi配置

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

    #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的配置相對應!

  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

  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的訪問日誌,可用來排錯。):


 

最後附上本人的網絡課堂地址,如有興趣請點擊: 實踐哥

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章