【问题标题】:Apache redirecting example.com to ec2 public DNSApache 将 example.com 重定向到 ec2 公共 DNS
【发布时间】:2021-08-21 19:11:53
【问题描述】:

设置

Route 53 域example.comA 记录到id.cloudfront.netAAAA 记录到random-id.cloudfront.net

Cloudfront 的源域为 EC2 公共 DNS ec.xxxxxx.amazonaws.com,备用域为 example.com。此外,它还有一个用于 SSL/TLS 的 AWS 证书(目前它接受 HTTP 和 HTTPS 请求)

EC2 是一个 Ubuntu-20.04 AMI,带有 apache2php7.4phpmyadmin,全部使用 apt-get 安装。

问题是每当我输入 example.com/* 时,网站就会自动重定向到 ec.xxxxxx.amazonaws.com/*

例子:

这些都是我尝试过的。

  • /etc/apache2/apache2.conf 中添加了ServerName example.com
  • 这个命令sudo ufw allow in "Apache Full"
  • 我的/var/www/html 文件夹中没有.htaccess

是 Cloudfront 问题还是 Apache 问题?这是我第一次使用 AWS 和 Apache,并尝试了解它是如何工作的。

似乎超出范围的解决方案:

如果需要,我可以提供更多信息。

更新:

  • 从 route53 中删除了 A 和 AAAA 记录。不起作用。
  • 另外,将ServerName example.com 添加到/etc/apache2/sites-enabled/000-default.conf
  • 此外,访问random-id.cloudfront.net 会执行相同的重定向。
  • 但是,访问 elastic-IP 不会进行任何重定向。

【问题讨论】:

    标签: apache amazon-ec2


    【解决方案1】:

    如果我正确理解您的设置,您可能需要 CNAME 而不是 Route53 中的 A 记录

    【讨论】:

    【解决方案2】:

    将问题追溯到HTTP_HOST 是服务器接收到的 ec2 公共 DNS。所以,如果我访问了example.com/index.php,并且代码应该重定向到example.com/index2.php,它会重定向到ec.xxxxxx.amazonaws.com/index2.php,因为HTTP_HOST = ec.xxxxxx.amazonaws.com

    已通过更新 CloudFront Distribution 的行为以转发 Host 值来修复。

    所以,如果我访问example.com,主机值将是example.com

    如果我访问id.cloudfront.net,那么主机值将是id.cloudfront.net

    https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多