我正在构建一个非常旧的程序,它有许多过时的依赖链接。
这些链接可能位于从网上下载的其他依赖项中,这些依赖项取消了更改网址的选项
我能够通过其他链接找到所有这些依赖关系,但更改路径已成为一项无休止的任务。
是否可以为一对一映射的传出URL创建规则列表。 例如:
http://Oldserver.com/this/is/one/OldDependency.jar - > http://Newserver.com/this/is/one/with/other/url/NewDependency.jar
使用什么工具进行路由,iptables或其他什么并不重要。我愿意为此做好准备。
这需要在OS级别上进行,因为路径在tar文件中
答案 0 :(得分:0)
我能够通过使用本地nginx来实现这一点。 这里最好的解决方案是一个dockerized nginx容器。
我将使用上面的例子
http://Oldserver.com/this/is/one/OldDependency.jar - > http://Newserver.com/this/is/one/with/other/url/NewDependency.jar
步骤:
编辑主机文件以将主机路由到本地主机
$ sudo vim / etc / hosts
将此行添加到您的主机文件
127.0.0.1 Oldserver.com
将docker引入nginx docker容器
docker pull nginx
将此nginx配置文件保存到某个路径(代码标签不起作用,抱歉)
活动{ worker_connections 4096; ##默认值:1024 }
http { 服务器{ 听80; server_name Oldserver.com;
location = /this/is/one/OldDependency.jar {
proxy_pass http://Newserver.com/this/is/one/with/other/url/NewDependency.jar;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
proxy_pass http://Oldserver.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
} }
如果您有更多路径,请在通配符location /
上方添加。
location /
使用保留路径
chmod 600 /some/path/to/nginx.conf
docker run --name proxy -v /some/path/to/nginx.conf:/etc/nginx/nginx.conf:ro -p 80:80 -d nginx
现在,对Oldserver.com的每个请求都将通过您的nginx代理并重新路由,如果它与您的任何位置配置匹配