1

我在 AWS EC2 实例上运行 Django。

我收到来自 Foursquare API 的签到帖子。Foursquare 需要一个 https 地址来将 POST 发送到(但不必对证书进行签名)。

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

对于这种情况,我只需要 https。实现这一目标的最简单方法是什么?

4

1 回答 1

3

如果不需要 Apache,那么您可以使用其他服务器,例如 NGINX。有一个让 NGINX 在 EC2 环境上运行的教程。我建议 NGINX 的原因是因为它的性能更好(注意:我确实比较过,ab但不要相信我的话)。

运行 NGINX 后,您可以将其配置为使用 SSL;这是这样做的文档。您需要 NGINX 之类的东西的原因是,python 并不是最适合所有类型的请求(例如,对于媒体/静态文件)。您可能还需要 NGINX 将请求移交给 WSGI 处理程序(例如uwsgigunicorn)。您可以在此处阅读更多相关信息

如果 SSL 证书不需要签名,您可以创建一个自签名证书,这里是一个教程示例,您可以在创建证书的步骤之后停止(或者如果您想使用 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 / {
        ...
    }
}
于 2013-02-02T06:19:41.707 回答