13 proxy mod-proxy django proxypass apache-2.2
更新:在玩弄下面的两个答案后,我添加了一个修改后的问题。
你好呀,
如果您正在阅读本文,您可能熟悉 Apache 的 mod_proxy 及其 ProxyPass 功能。像许多其他人一样,我有一个可以从内部网络外部访问的应用程序的问题,但该应用程序本身可以访问不同机器上的其他内部应用程序,当您通过此设置进行远程访问时,事情变得不稳定。
所以,我的设置非常简单,我有:
机器 #1 启用了远程访问,我通过主机名访问它,它会吐出运行在它上面的 PHP 应用程序。
Machine #2 是一个运行 Django 的新应用程序,它使用完全不同的后端(甚至是 auth),它托管在单独的机器上。在我们的 Intranet 中,我们通过一个简单的命名主机名访问它,该主机名基本上链接到内部 192.168.0.101 ip。
我尝试使用 ProxyPass 来设置它,例如,传递到 /new 会将其发送到新应用程序:
ProxyPass /new http://192.168.0.101/
这种工作方式,它将请求发送到另一个应用程序,但它中断了,因为我的 Django 应用程序想要重定向到 /auth/login/,它立即无法识别。如果我自己将 url 修改为 foo.net/new/auth/login,我会得到我的登录页面,但正如您所猜测的那样,在整个浏览过程中这样做并不方便。
那么我怎样才能让 ProxyPass 像我想要的那样工作呢?我是否需要对 Apache 做一些事情,以便它总是在另一个应用程序中的 url 之前写入 /new ,或者这是我应该在我的 Django 应用程序中修改的内容吗?
任何提示和指针也将不胜感激。谢谢你的时间
f4n*_*4nt 11
您应该修改您的 django 应用程序,使其位于 /new/auth/login 而不是 /auth/login。通常,您的代理通行证应如下所示:
ProxyPass /path http://192.168.0.101/path
ProxyPassReverse /path http://192.168.0.101/path
Run Code Online (Sandbox Code Playgroud)
结合您期望在 /new/ 的 Django 应用程序应该可以解决您的问题。
归档时间: |
|
查看次数: |
67711 次 |
最近记录: |