2011-12-30 18 views
8

Używam Apache do proxy konkretnego folderu do instancji Glassfish. Reguły w moim conf są następujące:Apache ProxyPass i sesje

ProxyPass /folder http://localhost:28083 
ProxyPassReverse /folder http://localhost:28083 
ProxyPassReverseCookiePath /folder http://localhost:28083 

Działa dobrze, z wyjątkiem sesji. Dla każdego podfolderu tworzona jest nowa sesja.

Podczas pobytu w jednym folderze sesja trwa nadal, ale gdy tylko przejdę do innego folderu, zostanie utworzona nowa sesja.

Jak mogę utworzyć jedną sesję dla wszystkich podfolderów?

Odpowiedz

1

Drugi parametr ProxyPassReverseCookiePath powinien być po prostu ścieżką, a nie pełnym adresem URL. Apache nie może poprawnie naprawić ścieżki upieczonej do pliku cookie w bieżącym nieprawidłowym użytkowaniu.

+0

Należy pamiętać, że parametry 'ProxyPassReverseCookiePath' są przełączane w porównaniu do innych parametrów' ProxyPass'. – cdauth

4

Jak już wspomniano, drugi parametr ProxyPassReverseCookiePath powinien być ścieżką. Należy pamiętać, że parametry są przełączane w porównaniu do innych dyrektyw, więc w Twoim przypadku będzie to:

ProxyPassReverseCookiePath//folder 

(Technicznie rzecz biorąc, nie powinno to być konieczne, aby pracować jako dostępne są również ciasteczka ze ścieżką / w /folder/, ale może to spowodować, że będą ingerować w pliki cookie innych aplikacji internetowych, które używasz w tej samej domenie.)

Dodatkowo możesz również przekonwertować domenę plików cookie (chyba że masz dostęp do aplikacji tylko przez http://localhost/folder/):

ProxyPassReverseCookieDomain localhost example.com 

example.com to domena, do której dostęp ma twoja aplikacja internetowa.