当前位置: 首页 > news >正文

[nginx]反向代理grpc

nginx从1.13.10版本开始提供对gRPC代理的支持。由于grpc基于http2,因此编译nginx时需要添加参数--with-http_v2_module来启用对http2协议的支持。

常用配置

应该是nginx 1.25版本开始,声明http2的语法应该单独写,而不是写在listen中。

listen 80;
http2 on;
  • 基本配置
http {server {listen 80 http2;location / {grpc_pass grpc://192.168.0.14:84;}}# 示例2, 通过server_name复用端口server {listen 80 http2;server_name demo2.test.com;location / {grpc_pass grpc://192.168.0.14:85;}}
}
  • 反向代理后端SSL gRPC
server {listen 80 http2;grpc_ssl_verify off; # 关闭对grpc服务器的ssl证书验证grpc_ssl_session_reuser on; # 启用与grpc服务器https连接的ssl会话重用功能location / {grpc_pass grpcs://192.168.0.14:84; # grpc后端地址}
}
  • nginx同时启用https。客户端 -> nginx(https) -> 服务端(SSL)
server {listen 443 ssl http2;ssl_certificate ssl/test.pem;ssl_certificate_key ssl/test.key;grpc_ssl_verify off;grpc_ssl_session_reuser on;location / {grpc_pass grpcs://192.168.0.14:84;}
}
  • 负载均衡配置
upstream grpc_backend {server 192.168.0.11:8001;server 192.168.0.12:8001;
}
server {listen 80 http2;location / {grpc_pass grpc://grpc_backend;}
}

配置指令

名称语法默认值说明
grpc_bindaddress [transparent] 或offnil设置从指定的本地IP地址及端口进行反向代理。设置transparent时,将客户端真实IP透传给后端。
grpc_buffer_sizesize4k或8k设用于从grpc服务器读取响应数据缓冲区大小。
grpc_passaddressnil后端grpc的地址
grpc_hide_headerfieldnil指定grpc后端响应数据中,不向客户端传递的http头
grpc_pass_headerfieldnil允许部分后端请求头返回给客户端
grpc_ignore_headersfieldsnil设置禁止nginx处理从后端获取响应的header
grpc_set_headerfield value在转发给grpc后端前,修改或添加请求头
grpc_connect_timeouttime60snginx与后端建立连接的超时时间
grpc_read_timeouttime60s从后端连续接收两个读操作之间的超时时间
grpc_send_timeouttime60s从后端连续接收两个写操作之间的超时时间
grpc_socket_keepaliveon 或 offoff启用nginx与后端的tcp keepalive机制
grpc_intercept_errorson 或 offoff启用拦截后端响应码大于或等于300的结果
grpc_next_upstream当出现指令之中指定的条件时,将未返回响应的请求传递给upstream中的另一个后端
grpc_next_upstream_timeouttime0next_upstream过程中的超时时间
grpc_next_upstream_triesnumber0next_upstream中下一个后端的尝试次数
grpc_ssl_protocols指定nginx与后端建立ssl连接的ssl协议的版本
grpc_ssl_session_reuseon 或 offon启用与后端https连接的ssl会话复用功能
grpc_ssl_ciphers设置建立https连接时用于协商使用的加密算法组合
grpc_ssl_server_nameon或offoff在与grpc服务器建立ssl连接时,设置是否启用通过SNI或RFC6066传递主机名
grpc_ssl_certificatefilenil指定后端对nginx的ssl证书文件
grpc_ssl_certificate_keyfilenil指定后端对nginx的ssl私钥文件
grpc_ssl_password_filefilenil指定后端对nginx的ssl密码文件
grpc_ssl_verifyon 或 offoff设置是否启用对grpc后端的ssl证书验证机制
grpc_ssl_namenameproxy_pass指令指定的主机名指定对后端ssl证书验证的主机名
grpc_ssl_crlfilenil证书吊销列表文件
grpc_ssl_trusted_certificatefilenil指定一个pem格式的ca证书文件
grpc_ssl_verify_depthnumber1设置证书链的验证深度

相关文章:

  • [技巧] 接口优化技巧合集
  • 数列求和计算
  • 人口贩卖暑期威胁消解:算法协同提升安全预警
  • 学习昇腾开发的第一天--环境配置
  • 技术实录-从 MySQL 启动失败到大小写兼容恢复:一次完整故障排查复盘20250614
  • Flask入门:从零搭建Python Web应用
  • Flink task、Operator 和 UDF 之间的关系
  • 【论文解读】OmegaPRM:MCTS驱动的自动化过程监督,赋能LLM数学推理新高度
  • [学习] 牛顿迭代法:从数学原理到实战
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | AnimatedNavigation(动态导航)
  • 【Spring源码核心篇-08】spring中配置类底层原理和源码实现
  • Vite 预构建机制深度解析(Vite缺点之一)
  • BeckHoff <--> Festo Cmmt AS驱动器 EtherCat通讯
  • C++基础算法————二分查找
  • JavaScript 事件循环
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解(二)——Central消息事件机制初探
  • Python学习笔记面向对象编程
  • 钉钉机器人-自定义卡片推送快速入门
  • keil一键烧录boot和app程序
  • jojojojojo
  • 人力资源网站建设/广东seo推广外包
  • 淘宝客论坛响应式php网站下载/海南seo代理加盟供应商
  • 动态网站开发相关技术/百度推广优化方案
  • 收录网站制作/北京百度推广投诉电话
  • 查收录网站/黄页引流推广链接
  • 网站建设素材/营销推广活动方案