国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx配置代理gRPC的方法

2024-08-30 12:25:06
字體:
來源:轉載
供稿:網友

Nginx 1.13.10新增了對gRPC的原生支持。本文介紹如何配置Nginx的gRPC。

安裝Nginx

Nginx版本要求:1.13.10。

gRPC必須使用HTTP/2傳輸數據,支持明文和TLS加密數據,支持流數據的交互。這是為了充分利用 HTTP/2 連接的多路復用和流式特性。所以在安裝部署nginx時需要安裝http/2。使用源碼安裝,編譯時需要加入http_ssl和http_v2模塊:

$ auto/configure --with-http_ssl_module --with-http_v2_module

Nginx以明文的方式發布gRPC服務。

nginx是使用http服務器監聽gRPC的請求。

示例:

http { server {  listen 80 http2;  access_log logs/access.log main;  location / {   # The 'grpc://' prefix is optional; unencrypted gRPC is the default     grpc_pass grpc://localhost:50051;  } }}

指令grpc_pass用來指定代理的gRPC服務器地址,前綴協議有兩種:

    grpc://:與gRPC服務器端交互是以明文的方式 grpcs://:與gRPC服務器端交互式以TLS加密方式

gRPC服務器地址的前綴“grpc://”是可以忽略,默認就是明文交互方式。

此示例里nginx以明文的方式在80端口發布gRPC,其中代理的gRPC在后端也是以明文的方式交互。

注意:Nginx是不支持在明文的端口上同時支持http1和http2的。如果要支持這兩種的http協議,需要設置為不同的端口。

Nginx以TLS加密方式公開gRPC服務

在生成環境建議使用Nginx是以加密的方式發布gRPC。這種情景需要在Nginx添加一個加密層。

在開發/測試環境可以使用自簽名證書,關于自簽名證書可以參考此簡明教程。

配置示例:

server { listen 1443 ssl http2; ssl_certificate ssl/cert.pem; ssl_certificate_key ssl/key.pem; location / {   grpc_pass grpc://localhost:50051; }}

示例里在nginx層給gRPC服務對外添加了ssl,而內部代理到gRPC服務器仍然是使用明文的交互方式。

gRPC客戶端也是需要TLS加密。如果是使用自簽名證書等未經信任的證書,客戶端都需要禁用證書檢查。在部署到生產環境時,需要將自簽名證書換成由可信任證書機構發布的證書,客戶端也需要配置成信任該證書。

代理加密的gRPC

如果Nginx內部代理的gRPC也需要以加密的方式交互,這種情況就需要把明文代理協議grpc://替換為grpcs://。這首先要gRPC服務器是以加密的方式發布服務的。

nginx層修改如下:

grpc_pass grpcs://localhost:50051;

nginx路由gRPC請求

如果后端有多個gRPC服務端,其中每個服務端都是提供不同的gRPC服務。這種情況可以使用一個nginx接收客戶端請求,然后根據不同的路徑分發路由到指定的gRPC服務器。使用location區分:

location /helloworld.Greeter { grpc_pass grpc://192.168.20.11:50051;}location /helloworld.Dispatcher { grpc_pass grpc://192.168.20.21:50052;}location / { root html; index index.html index.htm;}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瓮安县| 乡宁县| 长治市| 五台县| 三都| 郯城县| 兴和县| 万宁市| 南汇区| 天柱县| 阿拉善右旗| 中方县| 旬邑县| 衡南县| 象州县| 福泉市| 湖口县| 泰州市| 舟山市| 和政县| 永川市| 都昌县| 三门县| 宁远县| 青河县| 太仆寺旗| 孝义市| 固阳县| 新余市| 磐石市| 张家川| 玛沁县| 富蕴县| 红河县| 乐昌市| 博白县| 冀州市| 南川市| 从江县| 桓仁| 兰州市|