django - 如何代理 Web 请求并准确转发
问题描述
我正在尝试将 HTTP 连接代理到网站,以便我始终可以从世界上任何设备从服务器的相同 IP 地址访问它。我试图在没有任何安装或浏览器配置(如代理)的情况下做到这一点。
所以我想去 mydomain.com/asd 并且它加载 targetwebsite.com/asd 完全正常,就像一个基于浏览器的 VPN。尽管页面确实从其他域加载内容,但它将始终用于相同的目标域。
我真的不知道是否有一个简单的 nginx/httpd 配置可以做到这一点,所以我只是尝试在 Django 中做到这一点。
def index(request):
url = "https://targetwebsite.com" + request.META['PATH_INFO']
if request.method == 'GET':
r = requests.get(url)
elif request.method == 'POST':
r = requests.post(url)
return HttpResponse(r.text)
这有时有效。有一些奇怪的 Javascript 错误,奇怪的 404。这段代码有什么遗漏吗?
一个想法:
- 所有请求之间的共享/静态会话 cookie,因此可以进行登录
解决方案
推荐阅读
- java - In Java, How do I capitalize the first letters of an automated input?
- html - 如何用css制作阅读滚动条?
- php - 如何在php codeigniter中使用https而不是http获取数据json
- reactjs - 这个 componentWillMount 案例的替代方案?
- php - 如何组合多维数组中的第一个键值?
- arrays - 如何修改我的加法和减法函数,以便可以使用 Ruby 将数组作为参数传递?
- sql - 具有多个包含的 Linq-to-Sql
- angular - 在 Angular 单元测试中,如果返回类型可观察到任何字符串数据,则不使用 Angular 服务
- php - 如何将新数据插入现有行而不替换laravel中的现有数据?
- android - 适用于 Python APK 的更新软件