uwsgi錯誤invalid request block size
使用uwsgi啟動django代碼,然后打開瀏覽器輸入http://localhost:8000/admin。后台出現下面錯誤
invalid request block size: 21573 (max 4096)...skip
原因
用nginx來把請求發送給uwsgi。uwsgi被配置成使用socket方式(為tcp協議)進行通信。如果打開瀏覽器訪問uwsgi指定的端口,那么瀏覽器請求uwsgi的方式為http協議,而不是socket方式。所以就導致uwsgi的log文件中打出上面的錯誤信息。
解決方法
- 如果你想臨時使用http訪問uwsgi服務。那么需要把之前的uwsgi服務停止,並使用下面命令來啟動
uwsgi --http :8000 --wsgi-file application.py
- 如果是使用uwsgi.ini配置文件,那么修改里面內容把socket=:8000替換成http=:8000。 然后再次啟動
uwsgi --ini /patch/to/uwsgi.ini
注意:以上兩種方式啟動不能混用,例如使用uwsgi --http :8000 --ini /path/to/uwsgi.ini會造成端口已經被占用的錯誤:
uWSGI http bound on :8000 fd 3 probably another instance of uWSGI is running on the same address (:8000). bind(): Address already in use [core/socket.c line 769]