Ruby के लिए सर्वर स्केलेटन

ज़रूरी शर्तें

सर्वर को लागू करने के लिए ज़रूरी जेम:

  • 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