使用 Route 53 将特定路径路由到特定 EC2 实例

Posted

技术标签:

【中文标题】使用 Route 53 将特定路径路由到特定 EC2 实例【英文标题】:Route a specific path to a specific EC2 instance using Route 53 【发布时间】:2014-05-24 11:48:40 【问题描述】:

我不确定这是否可行,但如果可以,我正在寻找最好的方法。

假设我想在它自己的 EC2 实例上托管我的 example.com 博客,并且我希望我的博客的路径是 example.com/blog

是否可以将所有对 example.com/blog/* 的请求路由到一个实例,并将所有其他请求路由到该域的其他地方?

我的网络服务器是 Apache。

谢谢!

【问题讨论】:

Route 53 只是一个 DNS 服务器。它只是将域名映射到IP。所以你不能在 Route 53 上做到这一点。 【参考方案1】:

您现在可以使用 Application Load Balancer 和基于路径的路由来执行此操作:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/tutorial-application-load-balancer-cli.html#path-based-routing-aws-cli

【讨论】:

【参考方案2】:

当然可以,但不能使用 DNS 或 ELB。最常见的解决方案是使用发出 301 或 302 重定向的 Web 服务器。

在您的情况下,example.com 将指向主站点。托管 example.com 的 Web 服务器(可能是 nginx 或 Apache httpd)将具有在另一个目的地找到的 example.com/blog/* 的重定向。

这是关于使用 Nginx for a redirect 和使用 Apache for a redirect 的 SO 帖子。

【讨论】:

【参考方案3】:

是的,但您必须通过处理 example.com 的实例来代理您的请求。如何配置取决于您的网络服务器。

一些关于如何配置的例子:

nginx:http://wiki.nginx.org/HttpProxyModule 阿帕奇:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

【讨论】:

【参考方案4】:

由于您使用的是 Apache2 Server,因此您可以通过创建虚拟主机轻松实现此目的。

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/vchost1.com.conf

使用上述命令创建虚拟配置,它从apache2服务器提供的默认文件中复制完整的内容代码。

sudo nano /etc/apache2/sites-available/vchost1.com.conf

根据您的要求开始配置主机和域

<VirtualHost *:80>
    ServerAdmin admin@domain.com
    ServerName domain.com
    ServerAlias www.domain.com
    DocumentRoot /var/www/domain.com/public_html
    ErrorLog $APACHE_LOG_DIR/error.log
    CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>

在这里,您还可以在一个文件中配置多个虚拟主机,开始配置并享受黑客攻击。

您还可以使用相同的方法和引用,在单个实例中使用多个 Web 应用程序。

https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04-quickstart

【讨论】:

以上是关于使用 Route 53 将特定路径路由到特定 EC2 实例的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Amazon Route 53 将子域重定向到特定页面?

使用 AWS Route 53 路由到文件路径

'仅授权'资源的特定路径

AWS Route 53 - 到应用程序负载均衡器不同端​​口的域名路由

在 laravel 5.2 中禁用特定路由的 Web 中间件

如何将域指向路径或路由? AWS Elastic BeanStalk 和 Route 53