Ruby 版服务器框架

前提条件

服务器实现所需的 Gem:

  • google-protobuf(本教程中使用的是 3.2.X)
  • grpc(本教程中使用的是 1.2.X)

下载服务定义,然后创建以下目录结构:

[base_dir]
├── certificates
├── lib
├── protos
    └── booking_service.proto
└── server.rb

根据接口说明生成 Ruby 库:

$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto

实现服务器

如果您需要框架代码,请咨询 Google 联系人。

在不使用 TLS 的情况下测试服务器

对于初始测试,可以停用 TLS:

$ cd [base_dir]
$ ruby server.rb --disable_tls

这不适合用于生产环境!

配置正式版证书

如需在服务器上启用 TLS,需要以下文件:

  • certificates/server.pem 服务器的证书链(采用 PEM 格式)
  • certificates/server.key 服务器证书链的私钥
  • certificates/trusted_client_roots.pem 在对客户端进行身份验证时信任的根证书

在对客户端进行身份验证时,会使用一组可信客户端根证书。您可以选择从 Mozilla 等权威机构获取这组受信任的根证书,也可以安装 Google Internet Authority G2 目前推荐的一组根证书。在后一种情况下,您有时可能需要手动更新根证书。

最终目录结构

[base_dir]
├── certificates
    ├── server.pem
    ├── server.key
    └── trusted_client_roots.pem
├── lib
    ├── booking_service_pb.rb
    └── booking_service_services_pb.rb
├── protos
    └── booking_service.proto
└── server.rb