【nginx】配置proxy_pass之后,响应变慢的问题

2023-11-04

背景

netstub项目中,使用openresty作为网关,proxy_pass处理。配置如下, access.lua中进行一些预处理,然后代理到目标服务

    ...    

    location / {
        access_by_lua_file /etc/nginx/conf.d/access.lua; 
        resolver 8.8.8.8;
        proxy_pass http://$http_host;
        proxy_buffering off;
    }

    ...

问题

请求过程中发现,使用了nginx代理之后,请求变慢非常多,每个请求都将近1s。

本地启动netstub调试,直接请求http://httpbin.org/get?biz=test, 响应时间在200多ms

使用反向代理,请求http://127.0.0.1/get?biz=test, 响应时间达到了900多ms

 原因和解决方法

几经辗转发现是http协议版本导致的,代理之后走的是http 1.0。导致请求变慢。

在nginx配置文件中增加proxy 版本配置proxy_http_version  1.1; 指定为1.1版本即可

server {
    ...    

    proxy_http_version  1.1;

    location / {
        access_by_lua_file /etc/nginx/conf.d/access.lua; 
        resolver 8.8.8.8;
        proxy_pass http://$http_host;
        proxy_buffering off;
    }

    ...
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【nginx】配置proxy_pass之后,响应变慢的问题 的相关文章

  • 设置 nginx 具有多个 IP

    我的 nginx 配置文件位于 etc nginx sites available 下 有两个上游说 upstream test1 server 1 1 1 1 50 server 1 1 1 2 50 upstream test2 ser
  • 模式 ^u.meta(\.|$) 未按预期工作

    我有这个模式 u meta 预期行为 u meta 将匹配所有角色 例如 u meta u meta admin u meta admin system u meta 它不应该匹配如下所示的内容 u meta admin u meta ad
  • 生产中的静态文件出现 Django 301 和 403 禁止错误

    我正在尝试使用 nginx 和 Gunicorn 在 ubuntu 14 04 vps 上部署 django 网站 但是我的 css 文件和 js 文件没有加载 我在默认的 django 开发服务器上开发了它 它运行得很好 但是当我部署我的
  • Nginx 相对 URL 到绝对重写规则?

    给出以下配置 server listen 80 server name site com location proxy proxy pass http newsite com site com 上托管的页面使用相对路径 main css 对
  • 编译过程

    谁能解释一下编译是如何工作的 我似乎无法弄清楚编译是如何工作的 更具体地说 这是一个例子 我正在尝试在 MSVC 6 中编写一些代码来加载 Lua 状态 我已经 设置库的附加目录并将文件包含到正确的目录中 使用 extern C 因为 Lu
  • 当 ssl 和 http2 打开时,Nginx 似乎忽略 server_name

    我有这个 nginx 配置 server listen 80 default server listen 80 default server server name www example com return 301 https www
  • nginx设置问题

    我知道这不是一个直接的编程问题 但是 stackoverflow 上的人似乎能够回答任何问题 我有一台运行 Centos 5 2 64 位的服务器 非常强大的双核 2 服务器 具有 4GB 内存 它主要提供静态文件 Flash 和图片 当我
  • 使用 nginx 在云上部署 django 和 React

    我有一个 digitalocean 服务器 并且已经使用 Gunicorn 和 nginx 部署了 Django 后端服务器 如何在同一台服务器上部署 React 应用程序 您可以构建 React 应用程序并使用 Nginx 提供其静态文件
  • 在同一个 nginx 服务器块上公开多个 api uri

    Goal 我的目标是在同一个 nginx 服务器上设置多个后端 api 容器 http localhost 80 api account gt 调用 http account service 9000 http localhost 80 a
  • WordPress 3.0 .htaccess 到 nginx 重写规则的转换

    RewriteEngine On RewriteBase BASE uploaded files RewriteRule files index php L RewriteCond REQUEST URI wp content plugin
  • NGINX 返回 405 不允许使用 POST 方法

    我有这个default conf server listen 443 ssl root etc nginx json server name myserver com ssl certificate etc ssl certs server
  • 如何使用 Nginx 将下划线替换为破折号

    我第一次使用Nginx 对它基本上一无所知 我需要将 100 多个 URL 中的 替换为 我想一定有一种简单的方法可以用 Nginx 来做到这一点 但在 Google 上找不到任何东西 Thanks Edit 我的网址例如 http www
  • Lua C API:如何获取函数名称?

    假设 Lua 堆栈是为即将到来的函数调用设置的 使用lua pcall 为了使事情具体化 我们假设该函数采用一个字符串参数 并且堆栈不包含该函数下方的任何其他 Lua 对象 也就是说 堆栈将如下所示 Lua stack at 1 a LUA
  • Websocket 适用于 EC2 url,但不适用于 ElasticBeanstalk URL

    背景 我有反向代理 nginx 指向 ElasticBeanstalk ELB 是 singleInstance 环境类型并创建 EC2 实例 EC2 我正在使用 Dockerized Nodejs 应用程序 nginx是我们基础设施的入口
  • sudo:rvm:找不到命令 - Ubuntu 12.04 服务器上的 RVM 多用户安装

    我正在设置服务器 它是 Ubuntu 12 04 首先我安装了RVM多用户 me ubuntu curl L https get rvm io sudo bash s stable 然后在安装 RVM 后 按照安装提示 我将自己添加到 RV
  • 如何重载Lua字符串下标运算符?

    This debug getmetatable index function s i return s sub i i end 和这个 debug getmetatable index proc lua read 不起作用 Try debu
  • 如何重新安装cudnn?

    安装Cudnn 4 0 4后 我发现如果我想运行我下载的代码 我需要更高版本的Cudnn 然后我下载 cudnn 7 0 linux x64 v4 0 prod tgz 并直接按以下顺序安装 sudo cp include cudnn h
  • Lua userdata数组访问及方法

    我正在用 C 编写一个用户数据类型 以便在 Lua 中使用 它有一些数组类型的属性和各种方法 现在如果你是这种类型 我使用u set k v resp u get k 访问数据 例如u sort 作为方法 为此我设置了 index到包含这些
  • nginx 重写文件夹重定向

    all 我正在尝试在 nginx 中做一些事情来重定向对文件的所有调用 images 成为 assets images 有人可以帮我重写规则吗 给予 301 永久移动状态 以下是使用较新版本的 Nginx 执行此操作的首选方法 locati
  • 如何在一个 .exe 文件中构建并链接 Lua 核心和几个 Lua 模块

    我需要制作可在 Windows Linux MacOS 上运行且无需安装的便携式应用程序 它必须是一个可执行文件 并且不能有其他库文件 dll so 我将使用 ANSI C 并为每个平台重新编译项目 我想使用Lua脚本 所以必须在我的代码中

随机推荐

  • Android Studio 的NotePad制作(日志本),androidstudio基础

    此为点击设置之后的界面 设置颜色的代码如下 themeList ListPreference findPreference themelist themeList setSummary PrefVO themeListValue theme
  • 优化struts 2

    优化struts 2 1 关闭logging和devMode struts property struts devModel false 2 用freemarker tags 代替 struts2 tag
  • 硬件复习

    大家随便看看就好
  • Home Work--计蒜客

    临近开学了 大家都忙着收拾行李准备返校 但 I Love C 却不为此担心 因为他的心思全在暑假作业上 目前为止还未开动 暑假作业是很多张试卷 我们这些从试卷里爬出来的人都知道 卷子上的题目有选择题 填空题 简答题 证明题等 而做选择题的好
  • LeetCode-Python-54. 螺旋矩阵

    给定一个包含 m x n 个元素的矩阵 m 行 n 列 请按照顺时针螺旋顺序 返回矩阵中的所有元素 示例 1 输入 1 2 3 4 5 6 7 8 9 输出 1 2 3 6 9 8 7 4 5 示例 2 输入 1 2 3 4 5 6 7 8
  • 广州站

    12月2日 由阿里云 Serverless 团队主办的 云原生 Serverless 技术实践营 在广州顺利举行 本次活动面向所有企业技术人员 主打 沉浸式沙龙体验 6 小时搞定 Serverless 企业落地 活动当天 5 位阿里云技术讲
  • 80%白领危了!OpenAI发布GPT时代就业秘笈:34大铁饭碗保命

    导读 GPT 4发布没几天 OpenAI直接告诉所有人 GPTs是通用技术 80 的美国人的工作受到影响 想要保命 且看这34大 铁饭碗 前脚刚推出GPT 4 OpenAI后脚就发布了35页论文官宣 80 的美国人 都会受到AI的影响 研究
  • STM32“隐藏的定时器”-DWT

    01 前言 在之前的文章在 STM32延时函数的四种方法 使用定时器延时 在 如何测量代码运行时间 中提到使用定时器外设计算代码运行时间 文中提到这种方法的明显缺点就是需要占用一个定时器 一些MCU在特定应用场景下定时器外设资源是十分稀缺的
  • 信息安全大赛出的题目

    今天是信息安全大赛决赛的日期 可惜还要去市里培训 不能去现场观看 听说的做的一塌糊涂 也许是第一次举办这样的比赛 在校内还没有这样的氛围的缘故吧 中午打了电话 得知总分150左右的 最高的得了68分 我在反思 是我们把题目的难度没控制好 还
  • 华为OD机试 C++【最少步数】

    题目 你在一个一维的数轴上 起始位置为0 你每次只能走2步或3步 无论是向左还是向右 有时你可能需要走到负坐标上去 才能最终到达你的目标位置 任务 给定一个坐标点 找出到达那里的最小步数 输入 一个整数 n 表示目标坐标位置 1 lt n
  • Matter Project 入门 – Chip-tool 调试终端设备

    注意 本指南是对 Matter TE7 5 的投诉 请查看芯片工具 GitHub 页面 以获取任何最新更改 如果您没有遵循Matter 构建指南 您应该首先在您的 Raspberry Pi 4 上准备 Matter 环境 然后导航到 con
  • 二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。

    二货小易有一个W H的网格盒子 网格的行编号为 0到H 1 网格的列编号为 0到W 1 每个格子至多可以放一块蛋糕 任意两块蛋糕的欧几里得距离不能等于2 对于两个格子坐标 x1 y1 x2 y2 的欧几里得距离为 x1 x2 x1 x2 y
  • Idea: debug 跳出循环

    点击循环下面的某行代码 点击run to cusor按钮
  • RedHat Linux各版本汇总

    Linux的发行版本可以大体分为两类 一类是商业公司维护的发行版本 一类是社区组织维护的发行版本 前者以著名的Redhat RHEL 为代表 后者以Debian为代表 Redhat有两大 Linux产品系列 其一是免费的Fedora Cor
  • 关于tomcat7-maven-plugin插件的使用

    最近在学习黑马的淘淘项目 第一步是使用maven依赖进行环境搭建 其中使用到了tomcat7 maven plugin这个插件 视频中老师给的依赖大致是这样的
  • Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)

    Java并发编程系列 Java 并发编程 核心理论 Java并发编程 Synchronized及其实现原理 Java并发编程 Synchronized底层优化 轻量级锁 偏向锁 Java 并发编程 线程间的协作 wait notify sl
  • sql中的排序函数dense_rank(),RANK()和row_number()

    dense rank RANK 和row number 是SQL中的排序函数 为方便后面的函数差异比对清晰直观 准备数据表如下 1 dense rank 函数语法 dense rank over order by 列名 desc asc D
  • requests 和flask豆瓣安装方法

    pip3 install requests i http pypi douban com simple trusted host pypi douban com pip3 install flask i http pypi douban c
  • SQL中的case when then else end语句的用法示例

    case具有两种格式 简单case函数和case搜索函数 简单case函数 case sex when 1 then 男 when 2 then 女 else 其他 end case搜索函数 case when sex 1 then 男 w
  • 【nginx】配置proxy_pass之后,响应变慢的问题

    背景 netstub项目中 使用openresty作为网关 proxy pass处理 配置如下 access lua中进行一些预处理 然后代理到目标服务 location access by lua file etc nginx conf