我有我的所有网站文件 - example.com - 在我的EC2服务器上(Ubuntu和Apache)在EC2实例1上使用SSL。我想example.com/blog转到另一个EC2实例 - EC2实例2.我该如何用SSL来做?如何将example.com/directory指向具有SSL的另一个EC2实例?
我使用Ubuntu和Apache和Route 53.谢谢!
我有我的所有网站文件 - example.com - 在我的EC2服务器上(Ubuntu和Apache)在EC2实例1上使用SSL。我想example.com/blog转到另一个EC2实例 - EC2实例2.我该如何用SSL来做?如何将example.com/directory指向具有SSL的另一个EC2实例?
我使用Ubuntu和Apache和Route 53.谢谢!
一个简单的方法就是使用CloudFront,如this answer at Server Fault中所述,您可以使用路径模式来确定哪些URL将切换到哪个服务器。
另一个是应用程序负载均衡器(ELB/2.0),它允许根据path rules来选择实例。
这两种解决方案均支持来自Amazon证书管理器的免费SSL证书。
或者,您可以在主example.com Web服务器上的Apache配置中使用ProxyPass
将匹配特定路径的所有请求中继到另一个实例。
由于DNS在路径级别不起作用,因此无法单独使用Route 53来完成此操作。这不是路由53中的限制,它是DNS工作原理的一个基本部分。
您可以通过使用nginx反向代理快速轻松地实现此目的。您的ssl仍将在ELB级别进行管理和卸载。即听者443 = >> 80
1)安装的nginx
yum install nginx
2)添加到nginx的配置
upstream server1 {
server 127.0.0.1:8080;
}
upstream server2 {
server server2_IP_address_here:8080;
}
server {
listen 80;
server_name example.com;
location/{
proxy_pass http://server1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
location /blog {
proxy_pass http://server1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
}