Zastanawiałem się, czy w przypadku ofert AWS możliwe jest:
https://www.example.com/a/
-> obsługiwane przez Apache w EC2 Instancja A
https://www.example.com/b/
-> obsługiwane przez Apache w EC2 Instance B
Aby to wyjaśnić, nie chcę, aby pliki w jednej ścieżce katalogu znajdowały się na tej samej instancji serwera, co pliki w innej ścieżce katalogu.
Rozumiem, że może to być możliwe z jakimś proxy, ale czy istnieje łatwiejsze rozwiązanie z jedną z ofert AWS.
Moduł równoważenia obciążenia EC2 nie pozwala na przełączanie na podstawie ścieżki katalogu. Trasa 53 działa na poziomie DNS, który nie ma informacji o ścieżce do zwracania adresów IP na tej podstawie.
amazon-web-services
apache2
Joseph Shih
źródło
źródło
Host:
nagłówków i nie odfiltrowuje fałszywego ruchu. Wydaje się mało prawdopodobne, aby dodali funkcje, o które pytasz, jeśli patrzenie na nagłówki to dla nich zbyt wiele pracy. Na szczęście mają inne opcje.Odpowiedzi:
Użyj modułu równoważenia obciążenia aplikacji AWS , który wykonuje routing oparty na ścieżce . Ten drugi link to samouczek, jak to zrobić.
Krótko mówiąc, skonfigurujesz swój ALB w normalny sposób, a następnie wykonaj następujące kroki (skopiowane z samouczka AWS):
źródło
Oprócz doskonałej odpowiedzi Tima, możesz to również osiągnąć za pomocą CloudFront .
Pierwszy, utwórz dystrybucję , dodając źródła dla EC2 Instance A i EC2 Instance B (które mogą być również równoważnikami obciążenia, hostami innymi niż AWS, a nawet segmentami S3).
Następnie skonfiguruj reguły zachowania pamięci podręcznej, aby zmapować / a / * i / b / * do odpowiednich źródeł.
To, czy użycie CloudFront w tym celu ma sens, zależy od Twojej aplikacji i potrzeby posiadania sieci CDN.
źródło
/a*
i/b*
mają być obsługiwane przez różne usługi, różne konta, różne regiony, a nawet jedną ścieżkę obsługiwaną przez coś działającego w AWS i innych w innym miejscu. CloudFront ma wiele przypadków użycia, które w ogóle nie wymagają CDN.