Nginx:何时使用 proxy_set_header 主机 $host 与 $proxy_host

2024-03-26

我一直在阅读反向代理,想知道什么时候proxy_set_header Host $host是适当的proxy_set_header Host $proxy_host。我做了一些研究本文 https://www.digitalocean.com/community/tutorials/understanding-nginx-http-proxying-load-balancing-buffering-and-caching它表示在大多数情况下我们将 Host 设置为 $host。那为什么nginx默认是$proxy_host呢?为了帮助我更具体地理解,反向代理配置here https://whatididtodowhatidid.wordpress.com/2014/03/14/subdomains-for-ports-on-same-ubuntu-server-with-nginx-reverse-proxy/(文章底部)如果我们使用 $proxy_host 代替,仍然有效吗?

Thanks


一般来说,不需要明确地做proxy_set_header Host $proxy_host因为这是默认的。如果您需要通过某种方式调用服务器other比里面的内容proxy_pass指令,那么你需要通过覆盖proxy_set_header something.

如果您想代理same主机就像你的一样server_name指令,那么你将有机会使用proxy_set_header $host。如果实际应用程序可能托管在另一个端口或某些内部服务器上,则通常会出现这种情况。

server {
    listen 80;
    server_name site.example.com;
    
    location / {
       proxy_set_header Host $host;
       proxy_pass http://localhost:8080;
    }
}

如果您调用上游的名称不是其实际的 DNS 名称,那么您可能会看到类似以下内容:

# 192.168.2.1 responds to site.example.com, but
# site.example.com doesn't actually resolve to 192.168.2.1
proxy_pass http://192.168.2.1;
proxy_set_header Host site.example.com;

另一种情况可能是“基于名称”的虚拟主机,其中上游有一个有用的 DNS 名称,但您想用另一个名称来调用它。

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

Nginx:何时使用 proxy_set_header 主机 $host 与 $proxy_host 的相关文章

  • 使用 apt-get install nginx 后重新编译 nginx

    我最初是通过 apt get install 安装 nginx 的 它工作得很好 现在 我想安装一些第 3 方模块 并且必须重新编译 nginx 所以我尝试重新编译 它只是走过场 然后我意识到我的原始版本仍然是正在使用的版本 我是否需要先卸
  • Nginx + phpFPM:PATH_INFO 始终为空

    我在 Debian 上配置了 nginx stable 1 4 4 PHP 使用 FastCGI php fpm 效果很好 location php fastcgi split path info php alias home 1 publ
  • 如何使用 Angular-CLI 重写反向代理中的路径?

    我已经使用 angular2 CLI 设置了反向代理 如下所示 api customer target http localhost 9010 secure false 我的问题是远程 API 在路径 customer 上公开服务 但反向代
  • Ivy 通过 Nexus 代理

    有谁知道我如何在 Ivy 中指定 Maven 中的镜像 mirrorOf 之类的东西 我正在使用本地 Maven 代理 Nexus 并且需要该工具来指定 Nexus 代理应访问哪个父存储库 在 Maven 中我简单地做
  • nginx auth_basic 时间限制

    我正在使用 nginx 和auth basic模块 但我似乎找不到一种方法来指定 身份验证 过期的时间间隔 我希望能够强制 nginx 每 6 小时询问一次密码 有没有办法做到这一点 如果不是 可接受的解决方法是什么 这可能是不可能的 似乎
  • 如何从 .pac 文件中查找代理服务器和密码

    我正在使用 dynatrace ajax 版本 它需要代理服务器和密码才能连接到 dynatrace 服务器 问题是我只有我们在工作中使用的 pac 文件 URL 是否可以知道我的请求解析到哪个代理服务器和端口 以便我可以直接提供代理服务器
  • 使用 nginx 时在 dotnet core 中获取真实客户端 IP 地址

    我正在使用 dotnet 核心 我正在使用线路获取 IP 地址Request HttpContext Connection RemoteIpAddress ToString 当我使用我的 IP 地址访问我的网站时 我看到客户端 IP 地址显
  • 在 Jersey 中是否可以访问注入的 HttpServletRequest,而不是代理

    注射时HttpServletRequest在 Jersey JAX RS 资源中 注入的值是代理 例如 Path myResource class MyResource Inject HttpServletRequest request 会
  • Docker-nginx-反向代理:使用 docker-compose 构建时在上游找不到主机

    我正在使用 NGINX 容器将某些请求重定向到另一个容器 运行 docker compose up d 时 我收到以下错误 2019 09 26 18 05 00 emerg 1 1 在 etc nginx nginx conf 10 中的
  • Jenkins/Apache 反向代理错误

    根据我的搜索 我遇到了一个似乎相当常见的问题 但是我已按照我遇到的所有说明和 或修复进行操作 但没有一个对我有用 所以我问这个希望有人可以引导我走向正确的方向 我在 OS X 10 11 2 上通过 Homebrew 安装了 Jenkins
  • 使用 SSLSocket 的 SOCKS5 代理

    我有一个客户端 服务器应用程序 它通过 Java 的 SSLSocket 远程连接到服务器 我正在尝试实现一种可选模式 通过经过身份验证的 SOCKS v5 代理启用连接 我尝试使用相关教程 http download oracle com
  • nginx+uwsgi+django,uwsgi中似乎有一些奇怪的缓存,帮帮我

    这是 uwsgi 配置 uwsgi uid 500 listen 200 master true profiler true processes 8 logdate true socket 127 0 0 1 8000 module www
  • Nginx 位置“不等于”正则表达式

    我该如何设置locationNginx 中的条件是否响应任何不等于列出的位置 I tried location dir1 file2 php rewrite http example com 1 permanent 但它不会触发重定向 它只
  • Websocket-rails 不适用于 Nginx 和 Unicorn 的生产环境

    我有 Rails 3 2 应用程序和 gem websocket rails 0 7 在开发机器上 一切正常 在生产环境中 我使用 Nginx 1 6 作为代理服务器 使用 Unicorn 作为 http 服务器 Thin 用于独立模式 如
  • 如何在 nginx.conf 中引用操作系统环境变量

    在 nginx conf 中 设置变量后set name value 我可以像这样参考它 name 但是当我导出操作系统环境变量时 经过env name from env like https nginx org en docs ngx c
  • 通过代理服务器访问HTTPS站点

    我正在添加代码以使用代理服务器访问互联网 从正常 HTTP 位置请求文件时 该代码可以正常工作 但在访问安全位置 HTTPS 时则不起作用 这是运行良好的代码 URL http UnSecureSite net file xml Dim w
  • 如何将 CORS(跨源策略)添加到 NGINX 中的所有域?

    我创建了一个文件夹 用于提供静态文件 CSS 图像 字体和 JS 等 我最终会将文件夹 CNAME 到子域中 以便在 CDN 上使用 以便与我的 Magento 2 设置一起使用 我想允许所有域通过 CORS 跨源策略进行所有访问 并且我也
  • Apache 下的子域代理到 Tomcat

    在使用 AJP 代理 Tomcat 时 我在为 Windows 计算机创建子域时遇到问题 这是我的 httpd conf 文件中的内容
  • Android WebView - 带有经过身份验证的代理

    我目前正在尝试调试围绕 WebView 构建的 Android 应用程序 我负责处理的开发网络环境 不是我的选择 这是 企业 安全决策 是WPA WiFi 代理服务器 代理身份验证 虽然a上的说明以前的答案非常有帮助 https stack
  • 命名 Docker 卷以共享构建而不更新

    我工作的公司的开发人员要求我用 Docker 做一些不同的事情 然后我也被使用了 目标是拥有 2 个具有以下职责的容器 容器A 节点容器将构建前端 React 应用程序并将捆绑包放入名为的目录中app dist 完成后 容器将停止运行 容器

随机推荐

  • 泛型 C# 的重载运算符[重复]

    这个问题在这里已经有答案了 我想创建一个支持连接到另一个过程的过程类 如下所示 a b c d 这应该导致过程采用 a 的输入类型 并给出 d 的输出类型 class Procedure
  • 如何在 MS Graph 中检索 DriveItems 的自定义列

    我正在尝试使用 Graph API 检索 Sharepoint 文档库中的文件层次结构 由于文档库存储在 驱动器 中 将其称为 OneDrive 在技术上是否正确 我使用的是 drives端点来获取文件列表 如下所示 https graph
  • 多核ARM cpu上的中断如何工作

    这个问题已经针对 x86 得到了解答 但是 我找不到太多关于 ARM MP cpu 如 Cortex A9 Cortex A15 等 的信息 更重要的是我想知道是否可以在非主CPU上引发中断而无需任何配置等 我正在开发一款仅处理主 cpu
  • 确定 gcry_cipher_decrypt 解密数据的大小?

    我使用的是 AES GCM 但以下是其他模式 如 AES CBC 的一般问题 我有以下电话libgcrypt define COUNTOF x sizeof x sizeof x 0 define ROUNDUP x b x x b 1 b
  • Android - 创建自定义 SearchView

    我有一个列表活动 其中包括 SearchView 和 ListView 我希望 SearchView 类似于谷歌地图 Android 应用程序中的内容 目前我在activity main xml中的SearchView代码是
  • 具有 +1 逻辑的 4 位计数器 D 触发器

    我正在尝试通过 Verilog 实现带有 1 逻辑的 D 触发器计数器 但是我收到了很多有关网络多个常量驱动程序的错误代码 有人可以帮我吗 这是到目前为止的代码 module LAB clk clear Enable Q input clk
  • 将 margin-bottom 添加到页脚之前的图像

    我想看看是否有办法添加margin bottom to an img仅当元素后跟一个footer元素 目前我正在使用一个特殊的类 image before footer 在我最后一次img元素来实现这一点 但想知道是否有办法在 CSS 中动
  • 有没有人能够成功使用 albahari.com 的 PredicateBuilder 来对抗 MongoDB?

    我使用 albahari com 中流行的 PredicateBuilder 编写了以下代码 var predicate PredicateBuilder False
  • 增加tomcat 7中的并发连接数

    想知道如何增加tomcat 7中的并发连接数 我做了一些研究 从apache文档中发现 设置acceptCount maxConnections的值并增加maxThreads可以做到这一点 但是当尝试时 我只能提交500个请求1000 下面
  • 多字段匹配查询

    我对弹性搜索相当陌生 想编写一个涉及两个字段的查询 我的意思是字段的内容包含指定的子字符串 我有一个包含字段的文档 如下所示 name n tag t 我试过这个 search d query match name n tag t 但查询结
  • androidx.legacy:legacy-support-v4: 依赖有什么用

    我正在实现 Android Room 数据库 在其中一篇教程中我发现了使用androidx legacy legacy support v4 1 0 0依赖性 谁能告诉我这种依赖关系的用途 androidx legacy legacy su
  • Linux 上的 PHP 和 RAW Sockets

    做一个就足够了 sudo setcap cap net raw eip usr bin php5 能够在 Linux 中的 PHP 而不是 CLI 中使用 RAW SOCKETS 吗 如果是 那么它不起作用 但开始在 CLI 中工作但不使用
  • 如何在 C# 中解析 HTTP url?

    我的要求是解析 Http URL 并相应地调用函数 在我当前的实现中 我使用嵌套的 if else 语句 我认为这不是一种优化的方式 您能建议其他一些有效的方法吗 网址是这样的 server func1 server func1 SubFu
  • 使用服务主体对 GetReportInGroupAsync PowerBI Embedded API 调用进行未经授权的响应

    我正在尝试将 Power BI 报告嵌入到我的 Net Core 应用程序中 但是我无法从请求中获得有效的响应 我正在使用 Microsoft PowerBI API 包和通过服务主体注册的 azure 应用程序 据我所知 我已按照此处的说
  • 在没有包装器的情况下在 QT 上使用 OpenGL [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个与 OpenGL 结合使用的 GUI 工具包 QT 看起来很有前途 但不幸的是它将大多数
  • 在 Angular 中旋转伪 3D 轮播

    我正在尝试创建一个伪 3d 轮播 其中包含 5 个项目 如下所示 并让它们循环 我发现这很棒堆栈闪电战 https stackblitz com edit angular ivy sqt1uq file src 2Fapp 2Fapp co
  • 一般替换 Angular 2 路由参数并导航

    我正在构建一个 Angular 应用程序 其中大多数路由都属于给定项目并包含一个projectId 顶部导航区域将有一个项目的下拉列表 当用户从下拉列表中选择一个项目时 它需要导航到当前路线 但将 projectId 替换为新值 这非常类似
  • NameError:未定义全局名称“numpy”

    我正在尝试通过收集 essentia 一个 MIR 库 函数来编写一个特征提取器 流程图如下 单独的特征提取 池化 PoolAggregator 使用poolAggregator连接形成整个特征列表np concatenate 即使不导入
  • 如果屏幕上显示多个二维码,请扫描二维码

    我正在开发一个Android示例应用程序作为一个学术项目 我需要扫描二维码 我使用了二维码扫描库 如果屏幕上只有一个二维码 我能够成功检测到二维码 是的 我想扫描二维码 尽管相同的二维码一次显示在屏幕上的多个位置 例如 在我的笔记本电脑屏幕
  • Nginx:何时使用 proxy_set_header 主机 $host 与 $proxy_host

    我一直在阅读反向代理 想知道什么时候proxy set header Host host是适当的proxy set header Host proxy host 我做了一些研究本文 https www digitalocean com co