โครงกระดูกเซิร์ฟเวอร์สําหรับ 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