VProxy是一个零依赖的基于NIO的TCP负载均衡器。本项目仅需要Java 11即可运行。
WebSocksProxyAgent
和WebSocksProxyServer
查看 release page.
使用release页面中最新的vproxy-linux
二进制文件。
或者
使用jlink
打包的运行时文件:点这里下载。
使用release页面中最新的vproxy-macos
二进制文件。
Java运行时可以从这里下载。
使用jlink
打包的运行时文件:点这里下载。
注意:该运行时仍然处于beta阶段
./gradlew clean jar
java -jar build/libs/vproxy.jar -Deploy=HelloWorld
make jlink
./build/image/bin/vproxy -Deploy=HelloWorld
docker build --no-cache -t vproxy:latest https://raw.githubusercontent.com/wkgcass/vproxy/master/docker/Dockerfile
docker run --rm vproxy -Deploy=HelloWorld
./gradlew clean jar
native-image -jar build/libs/vproxy.jar --enable-all-security-services --no-fallback --no-server vproxy
./vproxy -Deploy=HelloWorld
仅支持macos(bsd)/linux。另外在编译前,你可能需要配置JAVA_HOME
环境变量。
make vfdposix
java -Dvfd=posix -Djava.library.path=./base/src/main/c -jar build/libs/vproxy.jar -Deploy=HelloWorld
如果要使用F-Stack
版本,可以按照这个文档的步骤执行:fstack-how-to.md。
此外,Windows有一个特别版本用于支持Tap设备:-Dvfd=windows
,但是普通fd和事件循环依旧是jdk selector channel.
make vfdwindows
java -Dvfd=posix -Djava.library.path=./base/src/main/c -jar build/libs/vproxy.jar -Deploy=HelloWorld
执行测试用例:
./gradlew runTest
测试vswitch, docker network plugin, vpctl, k8s controller:
# 需要事先安装virtualbox
cd ./misc/auto-setup/
./auto-setup.sh
./auto-verify.sh
添加crd并启动vproxy和controller
kubectl apply -f https://github.com/vproxy-tools/vpctl/blob/master/misc/crd.yaml
kubectl apply -f https://github.com/vproxy-tools/vpctl/blob/master/misc/k8s-vproxy.yaml
启动示例应用
kubectl apply -f https://github.com/vproxy-tools/vpctl/blob/master/misc/cr-example.yaml
详细信息可见这里
你可以用一行命令启动一个简单的负载均衡:
java -Deploy=Simple -jar vproxy.jar \
bind {port} \
backend {host1:port1,host2:port2} \
[ssl {path of cert1,cert2} {path of key} \]
[protocol {...} \]
可以输入help
检查参数列表。
使用help
查看启动参数。
在启动vproxy实例时,会默认开启一个监听18776端口的http-controller
和一个监听16309端口的resp-controller
。后续则可以使用curl
或者redis-cli
来操作该vproxy实例。当然你也可以直接通过标准输入(stdin)来操作vproxy实例。
查看command.md和api文档以获取更多信息。
如果有任何关于实现细节的问题也欢迎在issue中提出。
F-Stack
上运行vproxy。vpws-agent
的direct-relay
功能。目前只有我
自己在维护这个项目。希望能有更多人加入 :)
感谢Jetbrains制作的IDE,以及免费的开源许可证。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。