Nginx
如何驗證傳入請求通過 nginx 轉到 gunicorn-flask
我正在執行 nginx,gunincorn(啟動燒瓶)。當我殺死 nginx 時,nginx 測試頁面消失了,但 gunicorn/flask 應用程序繼續服務。
- 這是預期的嗎?
- 我如何確保 gunicorn/nginx 一起工作?
- 我還檢查了 nginx 訪問日誌,我沒有看到對 gunicorn/flask 綁定的埠的請求。
我的過程
- 安裝 nginx
- 安裝 gunicorn
- 設置 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()” &
- 是的,因為 nginx 和 gunicorn 是彼此不同的程序。當您殺死 nginx 程序時,gunicorn 程序仍在工作。
- 您可以使用監視工具,例如 naemon。您可以分別檢查 nginx 和 gunicorn 程序,並確保它們正常工作。
- 這也是正常的。因為預設的 nginx 日誌配置沒有提供這些資訊。(我不知道是可能的)