# Arthas-grpc 项目启动流程: ## 1. grpc-web代理服务配置 1. 前端grpc-web请求ip和port配置: [配置文件](./ui/src/main.js) ```js app.use(ViewUIPlus) .use(router) .provide("apiHost","http://localhost:8567") .mount('#app') ``` 2. 后端端口配置: [配置文件](./src/main/java/com/taobao/arthas/grpcweb/grpc/DemoBootstrap.java), 修改``GRPC_WEB_PROXY_PORT``变量,即可配置grpc-web代理服务端口。

若需要配置grpc服务端口和http页面服务端口, 分别修改`GRPC_PORT`和`HTTP_PORT`即可

*注意, 前后端grpc-web代理服务端口需一致(默认使用端口号: 8567) ## 2. 项目编译 ```shell mvn compile ``` ## 3. 项目运行 启动 [com.taobao.arthas.grpcweb.grpc.DemoBootstrap](./src/main/java/com/taobao/arthas/grpcweb/grpc/DemoBootstrap.java) ## 4. 页面访问 启动后,命令行终端会打印出访问地址 ```text Open your web browser and navigate to http://127.0.0.1:{http_port}/index.html ``` # netty grpc web proxy 本项目中使用到的grpc-web代理服务 from: https://github.com/grpc/grpc-web/tree/1.4.2/src/connector 原项目已废弃删除,本项目改用 netty 来做转发。 ## 缺点 原项目需要 `.proto` 文件编译的 `.class`才能运行,比如`GreeterGrpc`,本项目同样有这个问题。 ## 测试 工程导入IDE之后,进入test目录 在 com.taobao.arthas.grpcweb.proxy.server.GrpcWebProxyServerTest 启动测试 也可以用原项目的相关工程来测试 * https://github.com/grpc/grpc-web/ ## 开发验证 可以用其它的 grpc web proxy来抓包辅助验证。 ## 用 envoy 下载envoy 后,可以用本项目里的`envoy.yaml` * `envoy --config-path ./envoy.yaml` ## 使用 grpcwebproxy * https://github.com/improbable-eng/grpc-web/blob/master/go/grpcwebproxy/README.md 下载后,启动: * `grpcwebproxy --backend_addr 127.0.0.1:9090 --run_tls_server=false --allow_all_origins`