使用caddy搭建一个维基百科的镜像并添加广告

安装 replace-response 模块

caddy add-package github.com/caddyserver/replace-response

Caddyfile

主站

http://zhwk.example.com {
        reverse_proxy * https://zh.wikipedia.org {
                header_up Host {upstream_hostport}
                header_up X-Real-IP {http.request.remote.host}
                header_up X-Forwarded-For {http.request.remote.host}
                header_up X-Forwarded-Port {http.request.port}
                header_up X-Forwarded-Proto {http.request.scheme}
                header_up Accept-Encoding identity
                header_down location (https://zh.wikipedia.org/)(.*) https://zhwk.example.com/$2
                header_down location (https://zh.m.wikipedia.org/)(.*) http://mzhwk.example.com/$2
        }

        replace {
                "upload.wikimedia.org" "upzhwk.example.com"
                "zh.wikipedia.org" "zhwk.example.com"
                "zh.m.wikipedia.org" "mzhwk.example.com"
                "/w/index.php?title=Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95" ""
                "w/index.php?title=Special:%E5%88%9B%E5%BB%BA%E8%B4%A6%E6%88%B7" ""
                "action=edit" ""
                "</head>" "<style> .vector-menu-content-list,#ca-edit,#p-vector-user-menu-overflow,.mw-editsection{display: none;}</style></head>"
        }
}

移动站

http://mzhwk.example.com {
    reverse_proxy * https://zh.m.wikipedia.org {
                header_up Host {upstream_hostport}
                header_up X-Real-IP {http.request.remote.host}
                header_up X-Forwarded-For {http.request.remote.host}
                header_up X-Forwarded-Port {http.request.port}
                header_up X-Forwarded-Proto {http.request.scheme}
                header_up Accept-Encoding identity
                header_down location (https://zh.wikipedia.org/)(.*) https://zhwk.example.com/$2
                header_down location (https://zh.m.wikipedia.org/)(.*) http://mzhwk.example.com/$2
        }

        replace {
                "upload.wikimedia.org" "upzhwk.example.com"
                "zh.wikipedia.org" "zhwk.example.com"
                "zh.m.wikipedia.org" "mzhwk.example.com"
                "/w/index.php?title=Special:%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95" ""
                "w/index.php?title=Special:%E5%88%9B%E5%BB%BA%E8%B4%A6%E6%88%B7" ""
                "action=edit" ""
                "</head>" "<style> #page-actions-edit,.mw-editsection,#p-personal{display: none;}</style></head>"
        }
}

静态资源

http://upzhwk.example.com {
     reverse_proxy * https://upload.wikimedia.org {
                header_up Host {upstream_hostport}
                header_up X-Real-IP {http.request.remote.host}
                header_up X-Forwarded-For {http.request.remote.host}
                header_up X-Forwarded-Port {http.request.port}
                header_up X-Forwarded-Proto {http.request.scheme}
                header_up Accept-Encoding identity
        }
}

屏蔽了登录、注册、编辑功能,防止被恶意使用。

请将 example.com 替换成自己的域名,另外因为 cloudflare 不支持 多级子域名,所以移动站的一级子域名使用的 mzhwk 。

添加广告

如果需要添加广告,请加入下面内容

"</body>" "广告代码</body>"

注意事项

  • 运行的服务器必须可以访问维基百科。
  • 使用一个新的独立域名,避免造成主域名不可用。
  • 可以在 cloudflare 上开启禁止自动机器人。
  • 可以设置一个用户名和密码,限制他人访问。
  • 另外你也可以加入谷歌广告,赚回来一些服务器成本。
  • 推荐使用 cloudflare,避免服务器ip被墙。

推荐廉价域名后缀

  • win 4.16美元,续费5.16
  • uk 4.94美元,续费4.94
  • us 6.50美元,续费6.50
  • cc 8美元,续费8

还有一些首年1美元的域名后缀,不过续费有一些贵,如果做一次性域名就很划算。

我搭建的一个样例:https://zhwk.kkwiki.win/ 不过没有加广告。

你们可以按教程搭建,然后加谷歌广告赚外汇。

参考资料:https://zhul.in/2022/05/30/use-caddy-to-proxy-wikipedia/

0%