You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Nginx proxy_pass实现无跳转反向代理并隐藏源站DNS/IP

解决方案

你遇到的跳转问题核心是两个原因:一是源站/Cloudflare返回的重定向响应头Location字段用了原始域名,二是页面内的静态资源、跳转链接写死了原始站点域名。按照下方修改Nginx配置即可解决:

server {
    listen 80;
    server_name mysite.digital;

    location ^~ / {
        # 替换为你实际要代理的目标站点地址
        proxy_pass https://siteseguro.com;
        proxy_set_header Host siteseguro.com;
        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;
        proxy_set_header Referer $http_referer;
        # 可选:模拟浏览器UA避免Cloudflare拦截代理请求
        proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";

        # 核心1:重写源站返回的重定向头,把原始域名替换为内部域名,避免跳转到真实站点
        proxy_redirect https://siteseguro.com/ http://mysite.digital/;
        # 隐藏源站返回的敏感响应头,避免泄露真实站点信息
        proxy_hide_header Server;
        proxy_hide_header X-Powered-By;
        proxy_hide_header alt-svc;

        # 核心2:替换页面内所有原始域名的链接为内部域名,保证静态资源、跳转正常加载
        sub_filter "https://siteseguro.com" "http://mysite.digital";
        sub_filter "siteseguro.com" "mysite.digital";
        # 对所有响应类型执行替换(默认只替换text/html)
        sub_filter_types *;
        # 全局替换所有匹配内容,不是只替换第一个
        sub_filter_once off;
    }
}

额外说明

  • 如果Cloudflare触发了代理拦截规则,你可以把代理服务器的出口IP加到Cloudflare的白名单中,或者将站点迁出Cloudflare后直接把proxy_pass改为源站IP,Host头保留siteseguro.com即可,不会泄露真实源站信息。
  • 如果你需要内部站点也用HTTPS访问,只需要给mysite.digital配置SSL证书,把listen 80改为listen 443 ssl,同时把proxy_redirect里的http://mysite.digital/改为https://mysite.digital/即可。

内容的提问来源于stack exchange,提问作者rei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:09:03