关于django编码问题所导致的502错误
在使用django开发的时候,访问网站出现了502错误,次数也比较平繁
uwsgi+nginx+django
在命令行下提示如下错误
:
File "/opt/apps/python3/lib/python3.5/linecache.py", line 137, in updatecache
lines = fp.readlines()
File "/opt/apps/python3/lib/python3.5/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcf in position 484: invalid continuation byte
------------------------------------------------------------------------------------------------------------------------------------------------
很明显的编码错误
使用netstat -ntlp查看uwsgi进程,并没有被kill
接着查看 /var/log/nginx/error.log日志
错误信息如下:
upstream prematurely closed connection while reading response header from upstream
----------------------------------------------------------------------------------------------------------------------------------------------
通过以上两点,可以看出,在配置django项目时,一定有py文件的编码格式不对,这导致了uwsgi无法正常工作,
由于本人一直用winscp工具进行django的配置与写入,于是查看了最近自己编辑的py文件,如url.py views.py models.py等文件,终于找到了问题所在,views.py 文件显示的是gbk编码,
将它修改为utf-8后重新启动服务器,果然再也没有出现502错误了
在web开发中会遇到很多问题,有可能一个问题会导致你苦恼一个星期,当我们实在无法从网络上找到问题的答案,倒不如静下心来自己仔细分析分析。