wendu 发表于 2018-8-13 08:08:42

nginx+uwsgi运行python应用

  参考:
  http://www.bjhee.com/nginx-uwsgi.html
  1、安装uwsgi
  pip install uwsgi
  (apt install uwsgi)
  2、通过http运行一个文件,如test.py
  uwsgi --http :80 --wsgi-file test.py --master --processes 4 --threads 2 --stats 127.0.0.1:9090
  - -http”参数指定了HTTP监听地址和端口
  - -wsgi-file”参数指定了WSGI应用程序入口
  uWSGI将启动4个应用进程,每个进程有2个线程,和一个master主进程(监控其他进程状态,如果有进程死了,则重启)
  访问”127.0.0.1:9090″来获取JSON格式的应用运行信息
  可以把参数写进一个文件中
  cat myapp.ini
  
  http=:80
  wsgi-file=test.py
  master=true
  processes=4
  threads=2
  stats=127.0.0.1:9090
  启动
  uwsgi myapp.ini
  3、配置nginx
  将uWSGI的HTTP端口监听改为socket端口监听,即将配置文件中的”http”项去掉,改为”socket”项:
  
  socket=127.0.0.1:9090
  wsgi-file=test.py
  master=true
  processes=4
  threads=2
  stats=127.0.0.1:9191
  nginx 配置文件中为
  location / {
  include uwsgi_params;
  uwsgi_pass 127.0.0.1:9090;
  }
  启动
  service nginx restart
  uwsgi myapp.ini
  ------------------------------------
  cat uwsgi_params
  uwsgi_paramQUERY_STRING       $query_string;
  uwsgi_paramREQUEST_METHOD   $request_method;
  uwsgi_paramCONTENT_TYPE       $content_type;
  uwsgi_paramCONTENT_LENGTH   $content_length;
  uwsgi_paramREQUEST_URI      $request_uri;
  uwsgi_paramPATH_INFO          $document_uri;
  uwsgi_paramDOCUMENT_ROOT      $document_root;
  uwsgi_paramSERVER_PROTOCOL    $server_protocol;
  uwsgi_paramREQUEST_SCHEME   $scheme;
  uwsgi_paramHTTPS            $https if_not_empty;
  uwsgi_paramREMOTE_ADDR      $remote_addr;
  uwsgi_paramREMOTE_PORT      $remote_port;
  uwsgi_paramSERVER_PORT      $server_port;
  uwsgi_paramSERVER_NAME      $server_name;
页: [1]
查看完整版本: nginx+uwsgi运行python应用