Nginx 现在已经支持反代 gRPC 服务了,需要 Nginx >= 1.13.10
,并且安装 ngx_http_v2_module
模块。
下面宇润分享一下最简单的 Nginx 反代 gRPC 长连接服务的配置:
# 定义我们的 gRPC 业务服务器地址
upstream grpcservers {
server 172.17.0.1:13009; # 如果有多个可以定义多次
keepalive 1800; # 保持长连接的秒数。如果不配置这个参数,Nginx 与你的服务之间的连接,大概率会是短连接而不是长连接。
}
server {
listen 443 ssl http2; # gRPC 基于 Http2 协议,非常推荐启用 SSL
# 下面5行根据实际情况进行配置
server_name 你的域名;
access_log 你的域名.log main;
error_log 你的域名.log error;
ssl_certificate 证书.crt;
ssl_certificate_key 证书.key;
# grpc 代理设置
location ~* ^/(.+)\.(.+)/(.+)$ {
grpc_set_header Host $host;
grpc_set_header X-Real-IP $remote_addr;
grpc_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
grpc_socket_keepalive on;
grpc_pass grpc://grpcservers;
}
# 你的接口或者站点,如果不需要可以去掉
location / {
index index.html index.htm;