【问题标题】:nginx subdomain redirect catches other subdomainsnginx 子域重定向捕获其他子域
【发布时间】:2014-01-13 02:56:09
【问题描述】:

我目前正在通过 nginx 在子域上运行应用程序,并且需要 SSL。我实现了重定向,强制所有 http 流量到该子域上的 https。我注意到http://www.mydomain.com 被重定向到https://app.mydomain.com。但是,访问http://mydomain.com 工作正常。

我的目标是让http://www.mydomain.com 重定向到http://mydomain.com

并继续将 http://app.mydomain.com 的所有 http 流量重定向到 https。

我当前的 nginx 配置如下所示。

server {
  listen   80; ## listen for ipv4
  server_name  www.mydomain.com;
  return 301 http://mydomain.com$request_uri;
}

server {
  listen   80; ## listen for ipv4
  server_name mydomain.com;
  access_log  off;
  location / {
    root   /usr/share/nginx/html/mydomain;
    index  index.html index.htm;
}

我的应用配置是这样的:

server {
    listen *:80;
    server_name app.mydomain.com;
    server_tokens off;
    root /nowhere; # this doesn't have to be a valid path since we are redirecting, you don't have to change it.
    return 301 https://app.mydomain.com$request_uri;
}

server {
    listen 443 ssl;
    server_name app.mydomain.com;
    server_tokens off;
    ...
}

【问题讨论】:

  • 为什么要反对/关闭投票?这怎么超出了 SO 和题外话的范围?
  • 这个问题对我来说似乎很好,投票支持。

标签: nginx


【解决方案1】:

如果app 服务器由于某种原因匹配得更好,它会优先考虑的唯一原因,我看到的唯一区别是listen 行,将它从*:80 更改为80 以匹配其余部分,并且告诉我这是否有效。 还要去掉root,你说的没意义,别忘了重启/重新加载服务。

编辑:根据您的说法,您使用的是 firefox,firefox 会缓存响应,所以如果我将 server1 设置为重定向到 server2 并从 firefox 访问 server1,firefox 会保存该重定向,下次它会重定向不访问server1,解决需要清除firefox缓存的问题,比如今天知道第一次访问,只能清除今天的缓存,我是通过试验了解到的

【讨论】:

    【解决方案2】:

    不幸的是,问题似乎在完全不同的层面上得到了解决。我在 DNS 缓存方面遇到了一些问题,一旦清除,我的问题就解决了。

    【讨论】:

    • 你在用火狐吗?
    • 是的,我是。我偶然尝试了Chrome,但问题不存在。我昨天更改了几次 DNS 服务器,我的笔记本电脑似乎在清除缓存(macbook air)时出现问题。
    • 问题不在于 dns,firefox 会缓存响应,所以如果我将 server1 设置为重定向到 server2 并且我从 firefox 访问 server1,firefox 会保存该重定向,下次它会重定向而不访问server1,解决需要清除firefox缓存的问题,比如今天知道第一次访问,只能清除今天的缓存,我是通过试验了解到的。
    • 哇,这非常有帮助。我很乐意将您的问题标记为答案。您是否要将其添加到您的答案中,我会将其标记为解决方案。
    猜你喜欢
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 2021-04-14
    • 2014-01-13
    • 2012-11-04
    相关资源
    最近更新 更多