使用Caddy反向代理Project V (二)

简介

前篇介绍了Caddy反向代理Websocket到Project V的过程,本次介绍反响代理h2到Project V.

来源

白话文教程
配置模板

下载安装

假设使用64位的Linux系统, 并使用systemd管理方式(Centos7+,Debian8+)管理软件的启动,输入以下命令即可安装成功:

1
2
curl https://getcaddy.com | bash -s personal http.filemanager,http.forwardproxy,http.proxyprotocol
curl -s https://raw.githubusercontent.com/GEM7/My_scripts/master/caddy/caddy.service -o /etc/systemd/system/caddy.service

生成配置文件

因为启动管理器中固化的配置文件路径是/etc/Caddyfile,所以我们直接创建这个文件:

1
touch /etc/Caddyfile

编辑Caddyfile

Caddyfile 是 Caddy 的配置文件,编辑它来寻求我们需要的功能。目前只能中继H2流量,即送入Project V的数据由Project V自己解密,而不是由Caddy直接解密SSL再送入后端,可能难以进一步做负载均衡。

1
2
3
4
5
6
7
8
9
10
11
yourdomain.com:443 {
root /www
gzip
index index.html
tls /etc/v2ray/v2ray.crt /etc/v2ray/v2ray.key
proxy /h2 https://localhost:9999 {
header_upstream Host {Host}
header_upstream X-Forwarded-Proto "https"
insecure_skip_verify
}
}

其中
yourdomain.com 改成自己的域名
/h2 改成自己的路径,(无须追求复杂,不容易猜出来即可)
9999 改成 Project V 的 WS 监听的内网地址

其中:
yourdomain.com 改成自己的域名

编辑 Project V

Project V 的配置会与之前有不同,体现在需要指明使用TLS,需要添加证书相关参数。这里贴出”inbound”中的”streamSetting”部分。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"streamSettings": {
"network": "h2",
"security": "tls",
"tlsSettings": {
"allowInsecure": true,
"certificates": [
{
"certificateFile": "/etc/v2ray/v2ray.crt",
"keyFile": "/etc/v2ray/v2ray.key"
}
]
},
"httpSettings": {
"host":[
"yourdomain.com"
],
"path":"/h2"
}
}

启动与停止

  • 启动
1
systemctl start caddy
  • 停止
1
systemctl stop caddy
  • 重启
1
systemctl restart caddy
  • 开机启动
1
systemctl enable caddy

完毕