2016-05-04 34 views
0

我主持我的Django的REST框架API服務器gunicornnginx後面。當我在請求中使用一個小體的nginx API時,響應會出現。但是,對於大量的有效載荷,它不會返回200 OK響應。nginx的返回與200畸形報文/無響應時,請求體大

然而,當我直接打gunicorn,它返回一個適當的反應。

NGNIX與響應搞亂如果請求有效負載是大的。

我經由tcpdump捕獲的數據包,有則表明該響應包含MALFORMED PACKET。以下是TCP轉儲:

[Malformed Packet: JSON] 
[Expert Info (Error/Malformed): Malformed Packet (Exception occurred)] 
    [Malformed Packet (Exception occurred)] 
    [Severity level: Error] 
    [Group: Malformed] 

NGINX配置:

server { 
listen 6678 backlog=10000; 
client_body_timeout 180s; 

location/{ 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_read_timeout 120s; 
    proxy_connect_timeout 120s; 

    proxy_pass http://localhost:8000; 
    proxy_redirect default; 
} 
} 

我從來沒有見過NGINX對我玩硬。任何幫助讚賞。

回答

0

如果nginx的和gunicorn在同一臺服務器上運行,而不是使用兩個去跟對方回傳,Unix套接字是一個比較高性能的,我相信。我無法分辨您是否已經從配置代碼段中執行此操作。我是從gunicorn看到唯一的其他東西部署docs可能是有用的這裏是client_max_body_size 4G;,其中根據nginx的docs默認爲1 MB。

相關問題