stickysession не работает нормально в apache и двух экземплярах Glassfish

У меня есть два приложения, которые работают в двух экземплярах Glassfish, я настраиваю свой apache для использования липкого сеанса следующим образом:

ProxyPass / balancer://Appcluster/ stickysession=JSESSIONID

Но это не работает на 100% правильно, он несколько раз меняет экземпляр, когда клиент переходит с App1 на App2.

Я проверяю файлы cookie в моем навигаторе, он показывает мне что-то вроде этого:

cookies of browser

Я нашел другую конфигурацию в web.xml , примерно так:

<session-config>
    <session-timeout>
        30
    </session-timeout>
    <cookie-config>
        <path>/</path>
    </cookie-config>
</session-config>

Итак, когда я делаю этот путь таким образом каждый вещь работает нормально, но она создает новый контекст при каждой навигации между этими двумя приложениями.

Теперь я настраиваю свой Glassfish и устанавливаю App1 как веб-модуль по умолчанию , это работает нормально, и контекст тот же, и сервер создает новый файл cookie, подобный этому:

cookies of browser

Но когда я попробуйте подключиться к НЕТ веб-модулю по умолчанию , он использует два экземпляра.

Не могли бы вы предложить правильную конфигурацию Apache и Glassfish для запуска нескольких приложений в кластерной среде?

РЕДАКТИРОВАТЬ

Я кое-что уведомил, поэтому, когда клиент переходит с App1 на App2 и VS, каждый раз он создает новый файл cookie, например:

+-------+----------------------------------------+
| APP   | Cookie                                 |
+-------+----------------------------------------+-----+
| app1  | b5a1cd4befdc306f6e569d835b5e.instance2 | New |              
+-------+----------------------------------------+-----+
| app2  | b6caf890638a506216d625f7c82b.instance2 | New |                                  
+-------+----------------------------------------+-----+
| app1  | b6d1870ad8f3d044cc768b31e810.instance2 | New |                                   
+-------+----------------------------------------+-----+
| app2  | b6d84bf7b2a6fc37e3c9ffaf701b.instance2 | New |
+-------+----------------------------------------+-----+
| app2  | b6d84bf7b2a6fc37e3c9ffaf701b.instance2 |Same | because i don't change the application
+-------+----------------------------------------+-----+    
  • Почему каждый раз создается новый файл cookie?
  • Как можно исправить и сделать его уникальным для каждого приложения?
1
задан 23 January 2017 в 16:23
1 ответ

Бир жумалык издөөдөн кийин мен чечимди таптым:

Мен эки нерсени колдоном, алардын бири эки тиркемеде, экинчиси Apache серверинде:

Ошентип, колдонмолордо кукинин атын аныктоо керек. in web.xml :

APP1

<session-config>
    <session-timeout>
        30
    </session-timeout>

    <cookie-config>
        <name>jsessionapp1</name>
        <path>/</path>
    </cookie-config>
</session-config>

APP2

<session-config>
    <session-timeout>
        30
    </session-timeout>

    <cookie-config>
        <name>jsessionapp2</name>
        <path>/</path>
    </cookie-config>
</session-config> 

Жана Apache серверинде stickysession атын / etc / httpd / conf / оңдойбуз httpd_proxy.conf :

ProxyPass / balancer://Appcluster/ stickysession=jsessionapp1|jsessionapp2|jsessionappN

Мындан башка башка чечимдер барбы же жокпу, билбейм, ооба, аларды билүүгө кубанычтамын.

0
ответ дан 4 December 2019 в 05:21

Теги

Похожие вопросы