当我通过重写URL访问Django / admin时,我被重定向到127.0.0.1而不是正确的URL

时间:2011-11-20 13:37:59

标签: django apache mod-proxy gunicorn

我没有非常使用Apache与Django,通常使用nginx,gunicorn和unix socket。

在尝试使用Apache,mod_proxy和Django时,我一直在尝试将所有请求传递给gunicorn后端,并在127.0.0.1:8998上进行侦听。

我使用Rewrite ... [P](见下文)实现了这一点,但是,这对于默认URL工作正常,当我转到http://foo.bar.com/admin时,我被重定向到127.0.0.1/admin ,显然不能远程工作。这是一个可以通过htaccess文件实现的设置,我需要做什么/看看来修复它?

htaccess的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule     (.*) http://localhost:8998/$1 [P]

谢谢!

1 个答案:

答案 0 :(得分:1)

是否可以使用http://localhosthttp://localhost/

试试这个:

RewriteRule     ^/(.*) http://localhost:8998/$1 [P]

我最近研究了你想要实现的目标并最终得到了这个:

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass        /static/ http://example.com:8080/static/
ProxyPassReverse /static/ http://example.com:8080/static/

在这种情况下,我将所有静态路径请求传递给nginx,但它可能适用于gunicorn。

当然,您需要启用apache2模块代理。