问题标签 [http-host]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
484 浏览

amazon-web-services - 为什么在 Next.js 中发出请求时会有不同的主机头?

我在 Docker 容器内的 Elastic Beanstalk 中的 Amazon Web Services 上托管我的 Next.js 应用程序。我最近通过从 Express.js 打印注意到req.host,每当发送请求以/_next*路由主机时,都是myid.elasticebeanstalk.com. 在所有其他请求中(例如,对于实际页面或对 API 服务器的请求),主机example.com既是客户端又是服务器端(假设我的应用程序托管在该地址)。

我想知道为什么会这样?如何将主机标头设置为/_next*路由example.com?我怀疑有时这可能会导致 SSL 错误,因为主机将不正确。

弹性 beanstalk 配置是单实例。DNS 记录在 AWS Route 53 中配置。带有的主机标头myid.elasticebeanstalk.com仅出现在服务器端请求中。example.com是 CNAME,而不是别名。日志是在 docker 容器内制作的。一般来说,我认为 SSL 证书是由 Cloudfront 中的 AWS 提供的。

编辑:看起来主机名应该在 Elastic Beanstalk 的主机操作系统中设置,应该是 Linux。此AWS 文档对此进行了解释。

0 投票
0 回答
155 浏览

php - .htaccess 中的 apache 错误 HTTP_HOST 和 SERVER_NAME 但在 php 中正确

我有一个 apache Web 服务器,版本:Apache/2.4.34 (Red Hat),在它上面我有多个虚拟主机

现在,在 .htaccess 中,我有一个重定向来剪切尾部斜杠,但是在那里,变量 HTTP_HOST 和 SERVER_NAME总是加载默认(第一个)虚拟主机,而不是当前虚拟主机

问题甚至很奇怪,在 php 中这些变量已正确加载

知道该怎么做吗?我花了几个小时挖谷歌没有结果:(

LE 似乎不够清楚,假设我只有 2 个虚拟主机:www.ex.com和 mail.ex.com,第一个也是我键入 httpd -S 时的默认虚拟主机......现在,当我访问 mail.ex.com 时,在 .htaccess HTTP_HOST 中加载了www.ex.com而不是 mail.ex.com

0 投票
1 回答
38 浏览

nginx - Nginx 在 PHP 中传播 server_name 正则表达式

在我的 Nginx 配置中有

效果很好。但是当 Php 这样做echo $_SERVER['SERVER']时,它会看到:

尽管看起来合乎逻辑,但有没有办法获得与正则表达式匹配的服务器名称?服务器变量HTTP_HOST包含良好的值 ( stuff.mygreatsite987778.com.invalid)。我想保留SERVER变量。

0 投票
0 回答
182 浏览

java-8 - 为 JaxRs 客户端设置代理服务器的通用方法

我有代码,其中 webtarget 从不同的库传递给我。我无权访问代码来修改ResteasyClient。我想做的是相当于

我已经试过了-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=9999

我也试过

两者都不等同于 defaultProxy("127.0.0.1", 9999, "http")

似乎他们在这里可能有解决方案。我尝试注册以查看解决方案。但是他们没有简单的订阅方式,我只需输入我的信用卡号码即可。

我想问这个问题的另一种方法是,有没有一种方法可以设置 org.apache.http.client.config.RequestConfig 的所有实例,将其代理属性设置为http://127.0.0.1:9999

其他详细信息: 我要做的是通过代理服务器路由 http 流量。我不想在操作系统级别修改任何东西(流量整形的东西)。如果我在 java 中使用常规的 http 客户端,则参数-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=9999有效。但是当使用 jboss resteasy 客户端时,这些参数不起作用。

0 投票
0 回答
263 浏览

asp.net-mvc - 在 Azure 反向代理后面的 ASP.NET (4.7) MVC 中设置 HTTP_HOST 服务器变量

我继承了一个较旧的 .NET 4.7 MVC 应用程序,该应用程序托管在 Azure 中并位于反向代理(应用程序网关)后面。当请求从反向代理转发时,重写规则被设置为使用正确的域工作,这是到位的重写规则:

网络配置

我了解应用程序网关 (v1) 使用了非标准标头,例如 X-Original-Host(而不是 X-Forwarded-Host),这就是为什么上述规则适用于设置 IIS 服务器变量的原因。

现在,我们已经迁移到 Front Door,它发送标准的 X-Forwarded 标头。现在这意味着上述规则默认情况下不起作用,我已经通过为每个请求手动发送“X-Original-Host”标头(使用路由规则)来采取变通方法。

我想取消所有这些并使用标准的 X-Forwarded-Host 标头来设置 HTTP_HOST 服务器变量。

问题:

  1. 我是否可以轻松地将 HTTP_X_ORIGINAL_HOST 替换为 HTTP_X_FORWARDED_HOST?
  2. 我试图找到与上述值相关的文档,但找不到,有人可以指点我正确的方向吗?
  3. 有人说要<proxy enabled="true" preserveHostHeader="true" />在 system.webServer 下使用,但我找不到有关此的官方 Microsoft 文档

基本上,我想知道如何使用 X-Forwarded-Host 标头设置 HTTP_HOST 变量

0 投票
1 回答
38 浏览

nginx - Nginx:需要 http_name 域的映射函数

我们需要请求主机的域部分。

Fe:如果www1.domX.here是请求的主机,我们需要domX.here变量。

不工作:

此示例导致一个空域。

目前以这种方式解决了它:

0 投票
1 回答
48 浏览

javascript - 只获取域名

我只想要没有子域和路径 URL 的域名。

例子 :

浏览器中的 URL 加载:https://www.example.com/something。我只想example.com

我试过了echo $_SERVER['HTTP_HOST'];echo $_SERVER['SERVER_NAME'];但输出是www.example.com但它想要example.com作为输出。

用什么?