Python--uWSGI

7790 ワード

uWSDIコマンド
  • uWSGIのプロセスを見る:ps aux | grep uwsgi
  • Nginxを見るプロセス:ps aux | grep ngnix
  • リストポート占有率:netstat -lpnt
  • uWSDi起動:uwsgi --ini uwsgi.ini
  • Nginxエラーログ:vim /usr/local/webserver/nginx/logs/error.log
  • ポートコマンド
  • システムポートの表示状況:netstat -anp
  • 練習する
    1、ファイルを作成するflask_app.py
    [root@linux ~]# vi flask_app.py 
    ##### file start #### 
    from flask import Flask 
    app = Flask(__name__) 
    @app.route('/') 
    def hello_world(): 
    return 'Hi,This is a Python Web program use FLASK and Nginx by uWSGI!'  
    ##### file end ###

    2、Nginxファイルの構成
    location / {
        include uwsgi_params;
            #uwsgi_pass unix:/home/two/two.sock; #uWSGI Nginx      
            uwsgi_pass 127.0.0.1:3031; #uWSGI Nginx      
    }

    3、uWSDIコマンドの実行方法一
    uwsgi -s 127.0.0.1:3031 -t 30 -M -p 4 --limit-as 128 -R 10000 -w flask_app:app -d /home/two/run.log

    実行情報がrunに書き込まれているため、このコマンドラインの下では実行情報、すなわちバックグラウンド実行は発生しない.ロゴの中へ行きました.
    エンドモード
  • 問い合わせuWSGIPID:ps -ef | grep uwsgi
  • uWSDiを閉じる:kill -9 PID
  • 方式2
    uwsgi -s 127.0.0.1:3031 -t 30 -M -p 4 --limit-as 128 -R 10000 -w flask_app:app

    現在のコマンドラインでは、実行情報が印刷され、フロントで実行されます.閉じる方法:Ctrl+c
    命令解釈:-s UNIX/TCP
    -p
    -w WSGI
    -d , /var/log/uwsgi_run.log
    -t 30 30s , ,
    --limit-as 128 128M
    -R 10000 10000 , respawn
    ————————————————————
    uWSDIを構成する別の方法
    Nginx構成
    http {
        include       mime.types;
        default_type  application/octet-stream;
        #      
        client_max_body_size 100M;
        client_body_buffer_size 128k;
    
        sendfile        on;
        keepalive_timeout  100;
        server {
            listen       80; #    
            server_name liefyuan.top; #  
    
            location / {
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:5000; #   uwsgi         ,        uwsgi   
    
                uwsgi_param UWSGI_PYHOME /root/.virtualenvs/env; #         
    
                uwsgi_param UWSGI_CHDIR /home/four; #        
    
                uwsgi_param UWSGI_SCRIPT main:app; #       
            }
            location /static {
                alias /home/four/static;
            }
    

    uWSDi構成uwsgi.ini
    [uwsgi]
    
    socket = 127.0.0.1:5000
    
    processes = 4 # :     ,   4   
    
    threads = 2
    
    master = true
    
    pythonpath = /home/four
    
    module = main
    
    callable = app
    
    memory-report = true
    
    vacuum = true
    
    wsgi-file = main.py#    
    
    stats = 127.0.0.1:5001#      
    
    post-buffering = 65536
    
    buffer-size = 65536
    
    daemonize = /home/four/logs/run.log
    
  • プロセス数設定
  • processes = 4
  • スレッド数設定
  • threads = 40
  • タイムアウト設定
  • harakiri-verbose = true
    
    harakiri = 300
  • バッファ設置
  • post-buffering = 65536
    #              
    buffer-size = 65536 
  • pythonpath設定、複数可
  • pythonpath = /path1
    
    pythonpath = /path2
    
    pythonpath = /path3

    uid、gid:どのユーザー、グループでサービスを開始しますか?
    socket:傍受ipおよびポート
    master:メインプロセスの開始
    workes:サーバ起動プロセス数
    reload-mercy:スムーズな再起動
    pidfile:起動時のpidファイル.
    daemonize:ログの起動
    module:webアプリケーションのエントリモジュール名
    enable-threads:スレッドモードを有効にする