通常情況下,部署Django應用到生產環境時都會通過uwsgi部署,uwsgi一些配置項配置問題有可能會導致服務出現502狀態碼或者其他超時等的情況 常用到的配置項如下: reload-on-as = 600 reload-on-rss = 500 evil-reload-on-rss = 800 ...
通常情況下,部署Django應用到生產環境時都會通過uwsgi部署,uwsgi一些配置項配置問題有可能會導致服務出現502狀態碼或者其他超時等的情況
常用到的配置項如下:
reload-on-as = 600 reload-on-rss = 500 evil-reload-on-rss = 800 ignore-sigpipe = true ignore-write-errors = true disable-write-exception = true buffer-size=16384 http-timeout=300
1. reload-on-as/reload-on-rss/evil-reload-on-rss: 記憶體占用相關配置,單位M,當worker占用記憶體超過這些配置時該worker會重啟,worker頻繁重啟可能會導致每次請求worker都要重啟載入所有的資源,建立所有的資料庫連接,進而導致正常的api請求超時
2. buffer-size: 請求頭大小限制,後臺管理經常會出現超出預設配置4096的情況,此時會出現502狀態碼
定位流程:
查看uwsgi.log日誌,觀察是否有異常的重啟日誌
菜鳥程式員,博客只做記錄,可能問題很多,有問題,還望不吝指出!轉載請附上原文地址,謝謝!