跳过前戏,直奔主题:

拿Docker部署的Caddy举例,原本的代码如下:

a.nezha.monitoring {
	tls {
		protocols tls1.3
	}
	reverse_proxy /proto.NezhaService/* {
		to nezha-dashboard:8008
		header_up nz-realip {http.request.header.CF-Connecting-IP}
		header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
		transport http {
			versions h2c
		}
	}
	reverse_proxy {
		to nezha-dashboard:8008
		header_up nz-realip {http.request.header.CF-Connecting-IP}
		header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
		transport http {
			versions h3
		}
	}
}

我们可以进行如下修改:

1.解析一个用于上报数据的新二级域名,如 b.nezha.monitoring(不过CF)

2.修改Caddyflie,删除原本的gRPC段

3.修改Caddyflie,用b.nezha.monitoring作为新的gRPC上报反代域名

最终代码如下:

a.nezha.monitoring {
	tls {
		protocols tls1.3
	}
	reverse_proxy {
		to nezha-dashboard:8008
		header_up nz-realip {http.request.header.CF-Connecting-IP}
		header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
		transport http {
			versions h3
		}
	}
}

b.nezha.monitoring {
	tls {
		protocols tls1.3
	}
	reverse_proxy /proto.NezhaService/* {
		to nezha-dashboard:8008
		header_up nz-realip {remote_host}
		transport http {
			versions h2c
		}
	}
}