快速配置 Nginx 来实现 GPT 流式传输

目录

  • 1. Nginx 参考配置
  • 2. Nginx 核心参数
  • 3. 其他参数

场景代理 ChatGPT代理各种 GPT 工具套壳等。

1. Nginx 参考配置

支持 GPT 流式访问的配置如下,请根据实际需求适当取舍即可:

server {
    listen 80;
    server_name chat.test.com;  # 绑定的域名

	# 配置的时候不要配置全局,仅在需要转发的地方进行配置
    location /chatgpt {
        proxy_set_header Host $host;
     	proxy_set_header X-real-ip $remote_addr;
      	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://chatgpt-backend; # 使用定义的服务器组
        
        proxy_http_version 1.1; # 可选, websocket 可用
        proxy_set_header Upgrade $http_upgrade;  # 可选
        proxy_set_header Connection "Upgrade";  # 可选
        proxy_buffering off; # 核心参数
    }

    upstream chatgpt-backend {  # 定义一组服务器,主要用于负载均衡配置
        server 172.10.1.119:8080;
        server 172.10.1.120:8080;

    }
}

2. Nginx 核心参数

  • proxy_buffering off;

这个指令告诉 Nginx 不要缓冲来自上游服务器的响应,而是立即将其发送给客户端。这对于需要实时或流式传输数据的场景非常有用,比如实时聊天、流媒体等。

proxy_buffering 默认为 on:表示启用代理缓冲,Nginx 将缓冲来自后端服务器的响应,并在接收完整响应后才将其发送给客户端。这可以提高性能并减少对后端服务器的请求频率,但可能会导致延迟

【注】打开与关闭各有对应的场景。

3. 其他参数

  • proxy_set_header Host $host;

设置请求的目标主机头。$host 变量将被替换为客户端请求中的主机名。

  • proxy_set_header X-Real-IP $remote_addr;

设置客户端的真实 IP 地址。$remote_addr 变量包含客户端的 IP 地址。

  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

设置客户端 IP 地址的列表。当请求通过代理时,代理服务器会将原始客户端 IP 地址添加到 X-Forwarded-For 头部中。$proxy_add_x_forwarded_for 变量将在原始 X-Forwarded-For 值的基础上添加新的 IP 地址。

  • proxy_set_header Upgrade $http_upgrade;

设置升级头,用于告知后端服务器客户端是否支持升级到其他协议。通常用于支持 WebSocket 连接。$http_upgrade 变量包含请求中的 Upgrade 头部信息。

  • proxy_set_header Connection "Upgrade";

设置连接头,指示客户端和服务器之间的连接类型。在支持 WebSocket 的情况下,将连接类型设置为 “Upgrade” 以启用升级协议。

  • proxy_http_version 1.1;

proxy_http_version 指令用于设置与后端服务器之间的 HTTP 协议版本。默认情况下,Nginx
会使用与客户端之间相同的 HTTP 协议版本与后端服务器通信。但有时您可能希望显式地指定与后端服务器之间使用的 HTTP 协议版本。

指定 proxy_http_version 1.1; 表示要求 Nginx 与后端服务器之间使用 HTTP/1.1 协议进行通信。HTTP/1.1 是较新的协议版本,具有许多改进和增强功能,比如持久连接、分块传输编码等。通过指定HTTP/1.1,您可以确保与后端服务器之间使用最新的协议特性,并可能提高性能和功能。

【注】默认情况下,Nginx 会自动检测客户端的 HTTP 协议版本,并与后端服务器进行相应的通信。因此,通常情况下不需要显式地设置 proxy_http_version

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/620370.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCIE协议-2-事务层规范-Message Request Rules-Vendor_Defined Messages

2.2.8.6 厂商定义消息 厂商定义消息允许扩展PCI Express消息功能,可以作为PCI Express规范的一般扩展,也可以是厂商特定的扩展。本节通用地定义了与这些消息相关的规则。 厂商定义消息(见表2-25)使用图2-28中显示的头标格式。re…

Nios实验使用串口输出“Hello Nios-II”字符到笔记本电脑

目录 实验过程 创建工程 修改程序 编译工程 运行项目 效果实现 总结 参考 实验过程 硬件设计见博主上篇博客 软件部分设计 下面使用 Nios II Software Build Tools for Eclipse 来完成当前项目的软件开发。 启动 Nios II SBT 按照下图所示点击 Nios II Software Build…

计算机网络复习-传输层

概念 传输层是进程与进程之间的通信使用端口(Port)来标记不同的网络进程端口(Port)使用16比特位表示(0~65535) UDP协议详解 UDP:用户数据报协议数据报:应用层传输过来的一个完整的数据不合并,不拆分 UDP的头部 UDP特点 UDP是无连接协…

【R语言篇】医学生福音,全球疾病负担数据库GBD 2021即将更新!!!

今天介绍即将于5月16日更新的全球疾病负担数据库GBD 2021,相信数据一经发表,过不了多久pubmed又将涌现一大波疾病负担相关文章。 Global Burden of Disease Study 2021 (GBD 2021) Data Resources | GHDx 在查找GBD相关文献方面,我个人还是比…

PS的文字点阵 文字边缘虚 为什么在Ps中打出来的字是带有锯齿状模糊的?

此方法主要针对低像素文字 关键部分 (4 封私信 / 80 条消息) 为什么在Ps中打出来的字是带有锯齿状模糊的? - 知乎 (zhihu.com)https://www.zhihu.com/question/54412515

【牛客】SQL211 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

1、描述 有一个薪水表salaries简况如下: 请你获取薪水第二多的员工的emp_no以及其对应的薪水salary, 若有多个员工的薪水为第二多的薪水,则将对应的员工的emp_no和salary全部输出,并按emp_no升序排序。 2、题目建表 drop table …

8个手机宝藏App,建议收藏!

AI故事视频生成,一站式生成小说漫画推文、儿童故事、民间故事等https://aitools.jurilu.com/ 1.地图车机版——百度地图 百度地图,作为新一代的人工智能地图,以其智能语音、智能导航系统、智能路线规划和智能推荐方案而著称。它不仅提供传统…

MATLAB模拟退火算法、遗传算法、蚁群算法、粒子群算法

概况 模拟退火算法、遗传算法、蚁群算法、粒子群算法等算法,都是属于概率算法,不绝对,不迅速,能用其它方式解决的问题,不要用这些相对复杂的算法,比如有明确的线性关系或者非线性对应关系。这里的概率算法…

IP跳变是什么,有什么作用?

IP跳变,简单来说,就是用户在使用网络时,不固定使用一个IP地址,而是定期或根据需求切换到另一个IP地址。这种技术为用户在网络环境中提供了一定的灵活性和安全性。 首先,我们来看看IP跳变的具体实现方式。当用户需要切…

CUDA-均值滤波算法

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 实现原理 均值滤波是一种常见的图像处理方法,用于去除图像中的噪声。其原理很简单:对图像中的每个像素&a…

高频电源模块TL22010-T2整流模块TL22010-T3用途

直流屏充电模块TL22010-T2电源模块TL22010-T3,整流模块TL11010-T3,其他TL系列型号有:TL11020-T3,TL11010-T2,TL11020-T2,TL22010-T,TL-22010-T,TL-11010-T,TL-22005-T&am…

排序-选择排序(selection sort)

选择排序(selection sort)的工作原理非常简单:开启一个循环,每轮从未排序区间选择最小的元素,将其放到已排序区间的末尾。选择排序的主要特点包括: 时间复杂度: 无论最好、最坏还是平均情况&…

【图像增强(空域)】基于灰度变换的图像增强及Matlab仿真

1. 摘要: 空域内的图像增强就是调整灰度图像的明暗对比度,对图像中各个像素的灰度值直接进行处理。常用的方法包括:灰度变换增强和直方图增强。 2. 原理: 灰度变换增强是空域ne对图像进行增强的一种简单且直接的方法。灰度变换…

26版SPSS操作教程(高级教程第二十章)

目录 前言 粉丝及官方意见说明 第二十章一些学习笔记 第二十章一些操作方法 神经网络与支持向量机 人工神经网络(artificial neural network,ANN) 假设数据 具体操作 结果解释 对案例的进一步分析 结果解释 ​编辑 尝试将模型复…

Pikachu 靶场 XXE 通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台,用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境,供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术,…

软件测评中心详细介绍

软件产品已成为企业和个人工作中不可或缺的一部分。然而,面对市场上琳琅满目的软件产品,用户如何判断其质量、性能及是否满足自身需求呢?这时,软件测评中心的作用就显得尤为重要。本文将详细介绍软件测评中心的定义、功能及其重要…

【全开源】商会招商项目系统基于FastAdmin+ThinkPHP+Uniapp(源码搭建/上线/运营/售后/维护更新)

一款基于FastAdminThinkPHPUniapp开发的商会招商项目系统,是一个集PC和移动端功能于一体的解决方案,线上线下进行服务,围绕 活动报名、在线课程、项目大厅、线下签到、会员系统等。为商会提供了更加便捷高效的管理方式,提升了商会…

令牌桶算法:如何优雅地处理突发流量?

令牌桶算法的介绍 在网络流量控制和请求限流中,令牌桶算法是一种常用的策略。那么,令牌桶算法到底是什么呢?它的工作原理又是怎样的呢?让我们一起来探索一下。 令牌桶算法,顾名思义,就是有一个存放令牌的…

【Redis】Redis数据类型

目录 Redis五种数据类型 String字符串类型 字符串中最常使用的命令 List列表类型 List命令 Set与Zset集合类型 Redis五种数据类型 String字符串类型 有效的字符串类型不仅可以是字符,还可以是数字,以上都是有效的字符串类型。 String最大容量为51…

革新中小学食堂体验:智能消费管理系统方案

背景挑战 中小学校园的食堂总是一幅熙熙攘攘的景象。每到用餐高峰期,不仅排队时间漫长,而且维护良好的就餐秩序也成为了一项挑战。针对这些问题,优化学校食堂的管理并提升师生的就餐体验显得尤为迫切。 痛点与需求分析 在现有的食堂管理模…