网上很多教程都是无效配置,现通过自己实际操作和验证,精简出配置如下

一、版本要求

nginx 1.13.10 + (nginx从1.13.10开始支持grpc)

二、环境信息

服务器A grpc服务提供者,服务信息 127.0.0.1 8502
服务器B grpc服务代理者,转发后 服务信息 127.0.0.1 8503
服务器C grpc测试服务,服务信息 127.0.0.1 8080

三、需求

当前C可通过GRPC调用A,考虑到性能及安全性,现需要将A进行代理,由C通过GRPC调用B,再由B进行转发至A

四、配置

1.修改nginx.conf配置,在http{}里面添加如下内容:

# 设置超时和发包大小
client_max_body_size 4000M;
grpc_read_timeout 1d;
grpc_send_timeout 1d;
grpc_buffer_size 100M;

# 透传headers
underscores_in_headers on;

2.配置nginx转发

# grpc 代理配置
server {
	listen 8503 http2; # grpc方式对外暴露端口
	server_name localhost;
	# access_log logs/access.log main;
	location / {
		grpc_pass grpc://127.0.0.1:8502; # 此处配置grpc服务的ip和端口
	}
}

五、测试调用

nginx转发grpc服务(grpc ->grpc)

分类:

技术点:

相关文章: