Khung máy chủ cho Ruby

Điều kiện tiên quyết

Các Gem cần có để triển khai máy chủ:

  • google-protobuf (3.2.X được sử dụng trong hướng dẫn này)
  • grpc (1.2.X được sử dụng trong hướng dẫn này)

Tải định nghĩa dịch vụ xuống rồi tạo cấu trúc thư mục sau:

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

Tạo thư viện Ruby từ nội dung mô tả giao diện:

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

Triển khai máy chủ

Nếu bạn cần mã khung, hãy hỏi một POC của Google.

Kiểm thử máy chủ không có TLS

Để kiểm thử ban đầu, bạn có thể tắt TLS:

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

Cách này không phù hợp để sử dụng trong phiên bản chính thức!

Định cấu hình chứng chỉ phát hành công khai

Để bật TLS trên máy chủ, bạn cần có các tệp sau:

  • certificates/server.pem chuỗi chứng chỉ cho máy chủ ở định dạng PEM
  • certificates/server.key khoá riêng tư cho chuỗi chứng chỉ máy chủ
  • certificates/trusted_client_roots.pem các chứng chỉ gốc được tin cậy khi xác thực ứng dụng

Tập hợp chứng chỉ gốc của ứng dụng đáng tin cậy được dùng khi xác thực khách hàng. Bạn có thể chọn lấy tập hợp các thư mục gốc đáng tin cậy này từ một cơ quan như Mozilla hoặc cài đặt tập hợp các thư mục gốc hiện được Cơ quan Internet của Google (G2) đề xuất. Trong trường hợp thứ hai, bạn có thể phải thường xuyên cập nhật chứng chỉ gốc theo cách thủ công.

Cấu trúc thư mục cuối cùng

[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