0

對不起,如果這沒有多大意義。我對此很新,請耐心等待。Amazon Web Service - 通過SNI在ELB上路由流量

我試圖根據用戶使用的域名(example.com或test123.com),通過Amazon Elastic Load Balancer(應用程序負載均衡器是特定的)指定一個域到特定的文件夾。

我目前的設置是,所有來自互聯網的流量進入負載均衡器(ELB),從那裏它在2個EC2實例之間循環。這兩個實例都連接到亞馬遜網絡文件系統(EFS)以及關係數據庫(RDS)。 我可以訪問的網站(S)的罰款通過負載均衡的DNS(http://web-load-balancer-efs-16512354.us-east-1.elb.amazonaws.com/example/

我想現在要做的設置它,這樣如果有人把example.com作爲他們的網址將指向加載哪些Balancer並從那裏服務器將使用正確的文件夾作爲根(www.example.com文檔根將爲http://web-load-balancer-efs-16512354.us-east-1.elb.amazonaws.com/example/,但該URL仍然是www.example.com)。

我在Route 53上創建了一個託管區域,以便將域名指向我的負載均衡器,但目前我的負載均衡器導致了其中一個ec2實例。目前ec2文檔根目錄是/ var/www/html/efs-mount /。 有沒有辦法讓我擁有多個文檔根目錄取決於域名?

我偶然發現將多個TLS/SSL證書放在您的聽衆身上,並通過SNI協議可以找到正確的位置? http://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates。我不確定這是否是我需要的,或者我完全偏離軌道。

如果有人能指出我如何做到這一點,那就太好了。

謝謝

回答

1

你確實偏離軌道。

儘管具有多個SSL證書的ALB可能是您策略的一部分,但由於它允許您將多個ACM證書附加到單個實例或一組實例,因此ALB不會重新編寫傳入請求的路徑或確定實例如何將網絡路徑解析爲文件系統路徑。

這是在您的Web服務器本身配置的東西。首先搜索「基於名稱的虛擬主機」。每個域名將在Web服務器配置文件中指定它自己的「文檔根目錄」。

+0

這會更接近您的意思嗎? http://brianshim.com/webtricks/host-multiple-sites-amazon-ec2/ – Radizzt

+0

實際上,我發現一個更好,更清潔。 https://nouveauframework.org/blog/vhosts-running-multiple-sites-on-a-single-aws-ec2-instance/ 這會起作用,但是當我嘗試使用https://時,它沒有使用正確的證書。它使用默認的。我只需將端口443添加到<虛擬主機>? – Radizzt

+1

證書由負載均衡器選擇,而不是實例。驗證設置,在那裏。 –