質問: VPS上でDjangoのアプリを公開しています。 サーバーのOS:Ubuntu 16.04.1 LTS Pythonのバージョン:3.5.2 Djangoのバージョン:1.10.3 nginxとgunicornで起動しており、今まで問題なく動いていました。 しかし、今日、色々修正を加えていたところ、 UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) というエラーが生じてしまいました。 (通常はDEBUG=FALSE にしていますが、原因を見るため、TRUEにしました。) なお、python manage.py runserverにすると、起動しました。 が、しばらく経って見てみると、 502 Bad Gateway となってしまいました。 どのような原因が考えられるでしょうか。 お分かりの方、ご教示頂ければ幸いです。 よろしくお願いいたします。
回答: 明らかに環境の違いから来るエンコードの違いによるエラーだけど。 似たような状況の海外のHPから。 Django, nginx, gunicorn,supervisor: UnicodeEncodeError - when uploading non-latin named file 詳細な環境が分からないので、要約するとsupervisor environmentを’/etc/supervisor/supervisord.conf’の ``` [supervisord] environment=LANG="ru_RU.utf8", LC_LANG="ru_RU.UTF-8", LC_ALL="ru_RU.UTF-8" logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) ``` で再起動して反映させてみるような内容。 まあ環境が微妙に違うかも。