55 lines
2.3 KiB
Plaintext
55 lines
2.3 KiB
Plaintext
# XWorld 生产反向代理(Caddy v2,Windows)—— 域名版本:xworld.link
|
||
# 用途:给另一台使用 xworld.link 域名的机器部署(主 Caddyfile 已切到 xworld.ren)。
|
||
#
|
||
# 作用:对外只暴露 443(HTTPS/WSS),自动申请并续期 Let's Encrypt 证书;
|
||
# 网关/CDN 两个 .NET 进程只绑 127.0.0.1,由 Caddy 反代。
|
||
#
|
||
# 前置:
|
||
# 1) 三个域名的 DNS A 记录都指向本服务器公网 IP:
|
||
# game.xworld.link、www.xworld.link、裸域名 xworld.link(主机名 @)。
|
||
# 2) 服务器防火墙放通入站 80 与 443(80 用于 ACME 证书签发与跳转)。
|
||
# 3) 不要对外开放 5005 / 15081(它们只绑 loopback,给 Caddy 用)。
|
||
#
|
||
# 启动(测试):caddy run --config Caddyfile_xworldlink
|
||
# 装成服务见 README(用 NSSM 把 caddy 也注册为 Windows 服务)。
|
||
|
||
# ── 官网静态主页(被裸域名与 www 复用) ───────────────────────
|
||
# 把主页文件放到服务器的 C:\xworld\site\(须含 index.html)。
|
||
(site) {
|
||
root * C:\xworld\site
|
||
file_server
|
||
}
|
||
|
||
# ── 网关(大厅/对局,WebSocket) ───────────────────────────────
|
||
# 客户端连 wss://game.xworld.link/ws?pid=...
|
||
# Caddy 的 reverse_proxy 自动处理 WebSocket Upgrade,无需额外配置。
|
||
game.xworld.link {
|
||
encode zstd gzip
|
||
reverse_proxy 127.0.0.1:5005
|
||
}
|
||
|
||
# ── 官网主页(裸域名) ─────────────────────────────────────────
|
||
# 需给 xworld.link 加一条 A 记录(主机名 @)指向本机公网 IP。
|
||
xworld.link {
|
||
encode zstd gzip
|
||
import site
|
||
}
|
||
|
||
# ── 资源 CDN(静态文件)+ 官网主页(www) ──────────────────────
|
||
# 客户端按 https://www.xworld.link/game/60S/ 为资源根:
|
||
# 大厅: …/game/60S/XWorld/<platform>/…
|
||
# 小游戏: …/game/60S/minigame/<id>/<ver>/…
|
||
# 而 Cdn.Runner 从其 --root 起算路径(/XWorld/… , /minigame/…),
|
||
# 故必须用 handle_path 剥掉 /game/60S 前缀再反代,否则 404。
|
||
www.xworld.link {
|
||
encode zstd gzip
|
||
# /game/60S/* 走 CDN
|
||
handle_path /game/60S/* {
|
||
reverse_proxy 127.0.0.1:15081
|
||
}
|
||
# 其它路径返回官网静态主页
|
||
handle {
|
||
import site
|
||
}
|
||
}
|