我想这样的事情:
每次http://example.com/front1/的请愿都会从s3桶中获取内容。
每次http://example.com/front2/的请愿都会从另一个s3存储桶中获取内容。
每次http://example.com/microservice1/的请愿都会从微服务中获取内容。
每次http://example.com/microservice2/的请愿都会从另一个微服务中获取内容。
http://example.com/的其他请求从另一个s3桶中获取内容。
它适用于具有虚拟主机的apache:
<VirtualHost *:80>
ServerName example.com
## Vhost docroot
DocumentRoot "/tmp"
<Directory "/tmp">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
## Logging
ErrorLog "/var/log/apache2/example.com_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/example.com_access.log" "forwarded"
## Proxy rules
ProxyRequests Off
ProxyPreserveHost Off
ProxyPass /front1/ http://front1.s3-website-eu-west-1.amazonaws.com/
ProxyPassReverse /front1/ http://front1.s3-website-eu-west-1.amazonaws.com/
ProxyPass /front2/ http://front2.s3-website-eu-west-1.amazonaws.com/
ProxyPassReverse /front2/ http://front2.s3-website-eu-west-1.amazonaws.com/
ProxyPass /microservice1/ http://my-alb.com/microservice1/
ProxyPassReverse /microservice1/ http://my-alb.com/microservice1/
ProxyPass /microservice2/ http://my-alb.com/microservice2/
ProxyPassReverse /microservice2/ http://my-alb.com/microservice2/
ProxyPass / http://front-default.s3-website-eu-west-1.amazonaws.com/
ProxyPassReverse / http://front-default.s3-website-eu-west-1.amazonaws.com/
</VirtualHost>
但我正试图不要使用apache而且我正在尝试使用aws api网关。
问题在于我无法正确使用例如图像。似乎api网关已准备好用于检索json的调用。
我是对的吗?还有其他解决方案没有网络服务器吗?
非常感谢。
答案 0 :(得分:0)
我认为你可以使用Route53和ALB混合使用。
在example.com下为每个S3存储桶设置Route53 Alias记录,并将这些存储桶配置为静态S3网站。
然后将Route53 Alias记录设置为基于路径的ALB,并向此ALB添加两个侦听器 - 一个路由到/ microservice1 / *上的microservice1的TargetGroup,另一个路由到/ microservice2 / *上的Microservice 2
这非常简单,无需Web服务器进行调解。