我在urls.py
from httpproxy.views import HttpProxy
urlpatterns += patterns('',
url(r'^proxy/(?P<url>.*)$', HttpProxy.as_view(base_url=settings.PROXY_URL))
)
我的settings.py
...
PROXY_URL = 'http://external.com'
...
我的问题是,当访问网址http://localhost:8000/proxy/
时,我可以从http://external.com
的日志中看到它正在返回404
,因为网址前面有一个额外的斜杠,例如:
http://localhost:8000/proxy/test/
将记录"GET //test/ HTTP/1.1" 404 15447
我一直在挖,但找不到骨头!如果所有的主人都能够为这种饥饿提供帮助呢?
干杯!
答案 0 :(得分:2)
由于没有人回答(我甚至拿到了徽章,因为没有人回答,这有多酷?),我会发布我的解决方案,问题被提出后2天就解决了。
1 - 由于this issue pointed out by a friend,我已经避免使用django-http-proxy
。
2 - 所以我使用了一个代理所有HTTP方法的更好的库,而django-http-proxy
只能代理GET
。见django-revproxy
。
3 - 这引入了另一个问题 - Cookie冲突。发生这种情况是因为我有两个django实例。解决方案是在你的一个django应用程序中显式声明cookie路径,这样它就不会使用相同的路径。只需添加settings.py
这两行:
SESSION_COOKIE_NAME = "yourApp_session_id"
CSRF_COOKIE_NAME = "yourApp_csrftoken"
4 - 就是这样。我希望这个解决方案能够帮助那些关注的人。