我的网站使用Mezzanine 4.2.3、Django Oscar 1.5.2和Django 1.10.8,运行在Digitalocean上的Ubuntu 16.04上。当我在用创建的演示页面上使用夹层联系人表单时
createdb
,并从我自己的电脑,它成功地发送电子邮件。但当我在运行Ubuntu16.04的Digitalocean droplet上测试时,我得到了502坏网关。
nginx错误日志记录此错误:
*13 upstream prematurely closed connection while reading response header from upstream, client: [an IP I can't identify], server: [my website url], request: "POST /contact/ HTTP/1.1", upstream: "http://unix:/home/my-django-app/my-django-app.sock:/contact/", host: "[my website url]", referrer: "[my website url]/contact/"
.不同国家的人数不同
*1
,
*7
和
*13
,但文本是一样的。
我在谷歌上搜索了一下,找到了各种可能的解决方案:
nginx监听587端口,
sudo netstat -tulnp | grep 587
显示:
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 12815/nginx -g daem
我的电子邮件设置似乎很好:
EMAIL_USE_TLS = True
EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = "!#%%&&*%^#$^*%@gmail.com"
EMAIL_HOST_PASSWORD = "^*#^@#$%&@$%%#$"
EMAIL_PORT = 587
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
我也尝试了端口465的SSL。它与我的本地副本一起工作,但不在服务器上。与502的错误消息相同。
我认为“上游”意味着gunicorn,所以我为它设置了一个错误日志,但在加载页面时,它记录的只是状态代码200和302。502发生时,它没有记录任何东西。
我没有主意了。我错过了什么?
2018年6月3日更新:
$ telnet smtp.gmail.com 587
Trying 108.177.96.109...
Trying 108.177.96.108...
Trying 2a00:1450:4013:c01::6c...
telnet: Unable to connect to remote host: Network is unreachable
用465和25也试过了。这是否意味着Digitalocean正在阻止连接?有
precedent
.