【问题标题】:Running the django admin over https using apache2使用 apache2 通过 https 运行 django 管理员
【发布时间】:2010-10-14 17:31:06
【问题描述】:

我有一个在 apache 2.2.14 上运行的 django Web 应用程序,我想通过 https 运行管理应用程序。

阅读了关于使用代理、编写中间件、运行替代 wsgi 脚本的大量讨论后,#httpd 中的章节帮了我的忙。解决方案非常简单,我很惊讶我没有在网上找到它,所以我很好奇我是否做出了一些明显的假设或错误。

一个复杂的问题是,我还想通过 https 在站点中运行我的 django 应用程序之一,即 /checkout 上的所有内容。

基本上,如果用户在 http 上请求以 /admin 或 /checkout 开头的 URI,他们将被重定向到该 URI,但在 https 上。相反,如果用户在 https 上请求一个不以 /admin 或 /checkout 开头的 URI,他们将被重定向到该 URI,但在 http 上。

解决这个问题的关键是在我的 VirtualHost 配置中使用 Redirect 和 RedirectMatch 指令。

<VirtualHost *:80>

    ... host config stuff ...

    Redirect /admin https://www.mywebsite.com/admin
    Redirect /checkout https://www.mywebsite.com/checkout

</VirtualHost>
<VirtualHost *:443>

    ... ssl host config stuff ...

    RedirectMatch ^(/(?!admin|checkout).*) http://www.mywebsite.com$1

</VirtualHost>

【问题讨论】:

    标签: django http https apache2 admin


    【解决方案1】:

    另一种方法是使用@secure_required decorator。这将自动重写请求的 url 并重定向到 URL 的 https://... 版本。那么您不必在*:80 配置中进行重定向。如果您希望其他流量通过正常的 http 流量,可能仍需要*:443 配置以提高性能。

    【讨论】:

      【解决方案2】:

      我尝试了您的解决方案,但遇到了几个问题。首先,管理站点上的格式消失了,好像找不到管理静态文件一样。其次,如果我尝试通过 https 访问非管理员站点,浏览器将找不到它并将我重定向到 Yahoo 搜索。奇怪的是,如果我编辑 yahoo 搜索 URL 以消除除我正确 URL 之外的所有文本(减去 http://),它将继续通过 yahoo 搜索我的站点。但是,重新输入完​​全相同的 URL 会将我带到我的网站。

      我通过简单地删除所有这些问题来解决

      RedirectMatch ^(/(?!admin|checkout).*) http://www.mywebsite.com$1
      

      指令。

      我应该提到我的网站上没有 /checkout 部分,我只是想保护 /admin。 ...是的,我确实将我的 URL 替换为“mywebsite.com”

      【讨论】:

        【解决方案3】:

        您所描述的应该可以,但是如果您需要更改哪些路径是/不是 HTTPS,将来可能会出现问题。因为此方法需要能够正确修改 Apache 配置文件,这意味着您确实希望新手参与其中。搞砸配置文件,您的网站可能会在眨眼间出现 500 错误。

        我们选择了一个简单的文本文件,其中包含必须是 HTTPS 路径的列表。项目中的任何人都可以对其进行编辑,并在加载时检查其正确性。我们在中间件中处理任何需要的与 HTTPS 之间的重定向,它似乎工作得很好。如果您正在运行除 Apache 之外的任何其他程序,此方法也可以使用。

        【讨论】:

          猜你喜欢
          • 2012-04-12
          • 2012-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-11
          • 2023-04-07
          • 1970-01-01
          • 2011-10-20
          相关资源
          最近更新 更多