Serwer proxy Apache VirtualHost z podkatalogiem


13

Obecnie mamy serwer IIS jako nasz główny serwer WWW. Wdrażamy serwer Apache na jego miejscu, ale nadal musimy mieć dostęp do serwera IIS. Zazwyczaj jest to prosta sprawa, ponieważ Apache2 może proxy subdomeny do tego serwera.

Nasz problem jest jednak następujący: używamy dotnetCharting na serwerze IIS, a licencjonowanie jest powiązane z nazwą domeny. Aby dotnetCharting działał, należy zakupić kolejną licencję.

Moje pytanie brzmi: czy serwer proxy Apache2 może zawierać podkatalog? Na przykład, czy „www.example.com/subdir” wskazuje na serwer IIS? Wydaje się, że nie powinno to być niemożliwe, ale nie mogę znaleźć rozwiązania tego problemu.

Odpowiedzi:


19

Pewnie. Ale bądź ostrożny; wiele aplikacji internetowych nie jest dobrze zaprojektowanych pod kątem zmiany ścieżki adresu URL. Czy aplikacja jest obecnie używana w podkatalogu?

# You'll probably want this to maintain the host mapping in IIS
ProxyPreserveHost On
# Swap in the IP address or internal host name of your IIS server:
ProxyPass /subdir/ http://192.0.2.100/subdir/

Lub, jeśli zmieniasz ścieżkę adresu URL, pamiętaj, że wiele aplikacji będzie miało z tym problemy, ze względu na bezwzględne ścieżki do zasobów (CSS, javascript, obrazy):

ProxyPass /subdir/ http://192.0.2.100/
ProxyPassReverse /subdir/ http://192.0.2.100/

Doskonały! To sprawdziło się w moim środowisku testowym. W tej chwili wewnętrznie możesz wprowadzić adres IP serwera i użyć naszego wewnętrznego serwera proxy, aby dostać się na serwer, i wszystko (oprócz dotnetcharting) działa idealnie, więc nie oczekuję, że aplikacja ulegnie awarii, gdy przekażemy ją za pomocą tej metody. Bardzo mile widziane!
SuperJer

1
Musiałem zrezygnować z końcowego /z subdir(tak:) /subdir. W przeciwnym razie domain.com/subdirwystąpi błąd aplikacji (500). Byłby proxy poprawnie, gdyby ukośnik został dołączony ( domain.com/subdir/), ale nie tego szukałem.
OneHoopyFrood


0

ostatni ukośnik na końcu NIE jest obowiązkowy. Miałem taką konfigurację

ProxyPass /dir http://exmpale.com/dir/ 

ProxyPassReverse /dir http://exmpale.com/dir/ 

najwyższy poziom działał, ale nie działało wszystko w podkatalogach poniżej głównego.

Zmieniłem to na to i wszystko działało.

Dzięki za dezinformację !!!

ProxyPass /dir http://exmpale.com/dir

ProxyPassReverse /dir http://exmpale.com/dir

1
Dlaczego ludzie głosują za tym? To był dokładnie problem, który miałem. Musisz albo zakończyć oba adresy URL ukośnikiem, albo zostawić oba adresy bez ukośnika .... przynajmniej dla mnie pomogło, jeśli chodzi o podkatalogi;)
Jannik
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.