【问题标题】:How can I get nginx to forward a shortname to a FQDM?如何让 nginx 将短名称转发到 FQDN?
【发布时间】:2017-10-12 03:33:10
【问题描述】:

在我们的网络上,我们的服务器可以通过以下方式访问

appname and appname.companyname.net

我们如何让它将“appname”转发到“appname.companyname.net”?

appname 可能会有所不同,所以让它与任何值一起工作都会很棒。

这是在 AWS 弹性 beantalk 上运行的。我们正在通过 EB 扩展来配置它,我们可以传入一行以添加到现有的 ngnix 服务器{}

【问题讨论】:

  • 我原以为可以像处理任何不需要的子域一样处理短名称。使用特定的 server 块作为短名称或 FQDN。请参阅this answer 以获得指导。
  • @RichardSmith 请阅读我在问题中的最后一行。我们无法添加额外的服务器块,因为 EB 正在将我们添加的内容放入现有的服务器块中。我们可以添加带有返回值的 if() 语句。
  • 糟糕,我猜你必须使用if 声明。
  • 作为一个新手,我在 nginx 正则表达式、返回值等方面有点挣扎。

标签: nginx


【解决方案1】:

您可以通过查看 $http_host 变量并重定向到 FQDN 来检测短名称。例如:

if ($http_host = appname) {
    return 301 $scheme://appname.example.com$request_uri;
}

请参阅this document 了解更多信息,以及this caution 了解if 的使用。

【讨论】:

  • 即使通过 appname.companyname.net 访问 $http_host == appname 也不会?
  • 否,HTTP 请求中的 Host 标头的值包括原始 URL 的整个主机名和可选端口部分。
猜你喜欢
  • 1970-01-01
  • 2023-01-19
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 1970-01-01
相关资源
最近更新 更多