Nginx

如何驗證傳入請求通過 nginx 轉到 gunicorn-flask

  • January 24, 2017

我正在執行 nginx,gunincorn(啟動燒瓶)。當我殺死 nginx 時,nginx 測試頁面消失了,但 gunicorn/flask 應用程序繼續服務。

  1. 這是預期的嗎?
  2. 我如何確保 gunicorn/nginx 一起工作?
  3. 我還檢查了 nginx 訪問日誌,我沒有看到對 gunicorn/flask 綁定的埠的請求。

我的過程

  1. 安裝 nginx
  2. 安裝 gunicorn
  3. 設置 nginx

Nginx 設置

cd /etc/nginx
mkdir sites-available
mkdir sites-enabled
vim /sites-available/my_site
server {
   location / {
       proxy_pass http://localhost:9000;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
   }
}
dzdo ln -s ../sites-available/my_site my_site

Nginx 配置文件

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /run/nginx.pid;

events {
   worker_connections  1024;
}

http {
   include       /etc/nginx/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"';

   access_log  /var/log/nginx/access.log  main;

   sendfile        on;
   keepalive_timeout  65;
   include /etc/nginx/conf.d/*.conf;
   index   index.html index.htm;
   server {
       listen       90;
       server_name  localhost;
       root         /usr/share/nginx/html;

       location / {
       }

       error_page  404              /404.html;
       location = /40x.html {
       }

       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
       }
   }

   server {
      listen 9001;
      server_name localhost;
      root /tmp/html/;

      location / {
      }
   }
}

獨角獸開始

gunicorn –bind 0.0.0.0:9000 “my_site.driver:create_app()” &
  1. 是的,因為 nginx 和 gunicorn 是彼此不同的程序。當您殺死 nginx 程序時,gunicorn 程序仍在工作。
  2. 您可以使用監視工具,例如 naemon。您可以分別檢查 nginx 和 gunicorn 程序,並確保它們正常工作。
  3. 這也是正常的。因為預設的 nginx 日誌配置沒有提供這些資訊。(我不知道是可能的)

引用自:https://serverfault.com/questions/828291