Mikrotik.com 的 nginx 反向代理

nginx reverse proxy for Mikrotik.com

您好,我们需要缓存一些站点,例如 mikrotik in our system but this site is use "HTTPS" protocol and our caching system only cache HTTP protocol site So we thing if we used nginx as reverse proxy so client when visit https://www.mikrotik.com 我们的 DNS 系统很好地重定向到 nginx 本地 ip,nginx 很好地从 mikrotik 获取数据,如 HTTP 对客户来说,我们的问题是一切正常,但如果客户访问 mikrotik 网页内的任何内容,它会很好地重定向到 mikrotik 原始站点..这是 nginx 配置示例

server
{
    listen 80;
    server_name mikrotik.com;
    location / {
        proxy_pass https://mikrotik.com/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

我想这是因为网站上的所有链接仍将指向 https://mikrotik.com/... 您尚未代理

您可以尝试使用 Nginx sub filter 模块并在 Nginx 中重写所有链接,然后再将它们提供给您的网络。将这样的一些指令添加到您的位置块将使 Nginx 即时将链接从 https 重写为 http:

location / {
    ....
    ....
    sub_filter_types text/html;
    sub_filter 'https://mikrotik.com/' 'http://mikrotik.com/';
    sub_filter_once off;
    sub_filter_last_modified on;
    proxy_set_header Accept-Encoding "";

我将此配置用于类似的目的,但方式相反,因此从 http 转到 https。不确定它是否对你有用,因为 SSL 的全部意义在于阻止你做这种事情,这基本上只是中间人攻击