关于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开发中会遇到很多问题,有可能一个问题会导致你苦恼一个星期,当我们实在无法从网络上找到问题的答案,倒不如静下心来自己仔细分析分析。

原文地址:https://www.cnblogs.com/jjj-fly/p/7274645.html