使用https与Django

时间:2013-02-02 06:01:57

标签: django https foursquare

我在AWS EC2实例上运行Django。

我从Foursquare API收到checkin POSTS。 Foursquare需要https地址才能发送POST(但证书不必签名)。

如何让HTTPS与Django一起使用?我觉得我需要另一台服务器,比如Apache。如果是这种情况,我对Apache知之甚少,并且发现大多数答案都令人困惑。

我只需要这个案例的https。最简单的方法是什么?

1 个答案:

答案 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处理程序(例如uwsgigunicorn)。你可以read more about that here

如果不需要签署SSL证书,您可以创建自签名证书,这里是an example of tutorial,您可以在创建证书的步骤后停止(或者如果您想使用Apache,请继续所有步骤)。

一些很好的教程:

编辑:同时处理httphttps

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 / {
        ...
    }
}