由于疫情影响,我们所有的校园都已关闭,我们试图找到方法让学生在 IP 范围限制的情况下访问外部图书馆服务。
我们希望在代理服务上有类似这样的功能:https://libdb.net.proxy.mysite.org/whatever将为您提供https://libdb.net/whatever并且 libdb.net 将被欺骗,认为所有访问都来自 proxy.mysite.org,并且 libdb.net 下的所有链接都将被重写。这必须适用于很多域名。原则上,它必须适用于任何网站。
我们可以使用 *.proxy.mysite.com 的 DNS 通配符来修复解析,但我无法弄清楚 nginx 的魔力。任何建议都非常感谢。
(EZproxy 似乎可以解决问题,但在我收到报价请求的答复之前,我们正在寻找替代方案)
答案1
请参阅下面的代码片段:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
if ($host ~ (.+)\.proxy.mysite.com$) {
set $proxyhost $1;
}
location ~ {
proxy_set_header Host $proxyhost;
proxy_pass https://$proxyhost/;
}
}
这应该适用于预期场景。代码片段仅配置为使用 http,而不是 https