我在AWS EC2实例上运行Django。
我从Foursquare API收到checkin POSTS。 Foursquare需要https地址才能发送POST(但证书不必签名)。
如何让HTTPS与Django一起使用?我觉得我需要另一台服务器,比如Apache。如果是这种情况,我对Apache知之甚少,并且发现大多数答案都令人困惑。
我只需要这个案例的https。最简单的方法是什么?
答案 0 :(得分:2)
如果Apache不是必需的,那么您可以使用其他服务器,例如NGINX。有一个教程for getting NGINX running on an EC2 environment。我建议使用NGINX的原因是因为它表现得更好(注意:我确实与ab
进行了比较,但我没有接受我的说法)。
运行NGINX后,您可以将其配置为使用SSL;这是the documentation to do so。您需要像NGINX这样的东西的原因是因为python不是所有类型请求的最佳选择(例如,对于媒体/静态文件)。您可能还需要NGINX将请求移交给WSGI处理程序(例如uwsgi
或gunicorn
)。你可以read more about that here。
如果不需要签署SSL证书,您可以创建自签名证书,这里是an example of tutorial,您可以在创建证书的步骤后停止(或者如果您想使用Apache,请继续所有步骤)。
一些很好的教程:
编辑:同时处理http
和https
:
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
location / {
...
}
}