按照官方文档的步骤部署 Django 应用,执行到如下步骤时,会出现 502 错误。
1 | uwsgi --socket mysite.sock --wsgi-file test.py |
查看 Nginx 的错误日志会看到connect() to path failed (13: Permission denied)
错误。按照官方文档的解决办法进行尝试之后,还是无法解决这个问题。
经过一番折腾之后,终于找到了解决办法,特此记录。
1 | Linux: Ubuntu 14.04 64位 |
修改 mysite_nginx.conf 中 upstream django 模块的 server unix 路径,不要把这个 socket 文件放在项目目录下面,改成
1 | server unix:///var/run/mysite.sock |
放在/var/run
目录下面,因为 uWSGI 需要对这个 socket 文件所在的目录具有写权限,一般情况下是放在 /var/run 或者 /tmp 下。
然后执行
1 | uwsgi --socket /var/run/mysite.sock --wsgi-file test.py |
之后就可以通过浏览器访问了。