Mam serwer WWW Apache zainstalowany jako frontend i mam serwer aplikacji SAP Netweaver j2ee zainstalowany na serwerze intranetowym. Jak skonfigurować apache do przekazywania żądań i odpowiedzi do/z serwera aplikacji j2ee. Na przykład adres IP zewnętrznego serwera apache to 9.20.1.1:80. wewnętrzny adres serwera SAP to 192.168.0.1/sap/bc/gui/sap/its/webgui?sap_client=200 Chcę uzyskać dostęp do mojego serwera aplikacji SAP, na przykład 9.20.1.1/sapserver/sap/bc/gui/sap/ ? jego/WebGUI sap_client = 200Jak skonfigurować serwer Apache do pracy jako serwer proxy (load balancer) dla serwera j2ee?
Odpowiedz
Wspomniałeś o równoważeniu obciążenia - więc prawdopodobnie chcesz móc dodać więcej serwerów aplikacji, które są obsługiwane przez jeden adres. Mam nadzieję, że są one bezpaństwowcami lub przechowują informacje o sesji w bazie danych. Możesz użyć Apache do działania jako równoważnik obciążenia wstecznego proxy z mod_proxy_balancer
. Dokumenty to here.
Oto przykład tego, co dodać do pliku httpd.conf z this link.
<Proxy balancer://myclustername>
# cluster member 1
BalancerMember http://192.168.0.1:3000
BalancerMember http://192.168.0.1:3001
# cluster member 2, the fastest machine so double the load
BalancerMember http://192.168.0.11:3000 loadfactor=2
BalancerMember http://192.168.0.11:3001 loadfactor=2
# cluster member 3
BalancerMember http://192.168.0.12:3000
BalancerMember http://192.168.0.12:3001
# cluster member 4
BalancerMember http://192.168.0.13:3000
BalancerMember http://192.168.0.13:3001
</Proxy>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.meinprof.de
ServerAlias meinprof.de
ProxyPass/balancer://meinprofcluster/
ProxyPassReverse/balancer://meinprofcluster/
ErrorLog /var/log/www/www.meinprof.de/apache_error_log
CustomLog /var/log/www/www.meinprof.de/apache_access_log combined
</VirtualHost>
Zakładając masz mod_proxy włączona, aby dodać jesteś stron dostępnego:
ProxyRequests Off
<Location "/sapserver">
ProxyPass http://192.168.0.1
ProxyPassReverse http://192.168.0.1
</Location>
Bądź ostrożny, ponieważ nie narażać wewnętrzną witrynę do całego Internetu.
To jest często błędnie określane jako odwrotne proxy. Jeśli użyjesz wyszukiwarki, by znaleźć "reverse proxy apache", uzyskasz wiele dobrych wyników.
Szybka odpowiedź jest dodać coś takiego do apache.conf
ProxyPass/SAP/192.168.0.1/sap/
< Lokalizacja/SAP />
ProxyPassReverse /sap/
</Lokalizacja>
Zobacz także royce modrewrite i opcję [P].
W rzeczywistości jest to odwrotne proxy. Przekierowanie przekazujące to host, który kieruje prośby o zapewnienie buforowania i filtrowania. Nie wiem, dlaczego powiedziałbyś, że jest "omyłkowo" nazywane odwrotnym proxy. – MattMcKnight
Nie działa całkiem nieźle. Wystąpiły problemy z renderowaniem obrazów i stylami strony (aplikacja j2ee). Strona renderowana bez grafiki i stylów CSS. Co mogę ci doradzić? –
Czy można sprawdzić, czy aplikacja J2EE nie odwołuje się do obrazów i CSS za pośrednictwem bezwzględnych adresów URL zamiast względnych? –