2014-09-25 3 views
1

У меня такая конфигурация.Балансировка нагрузки HTTP с nginx

upstream servers{ 
       server localhost:port1; 
       server localhost:port2; 
       server localhost:port3; 

} 

server{ 
     listen nginx_port; 
     server_name localhost 

     location{ 
       proxy_pass http//:servers; 
} 



} 

Теперь я хочу знать, как поддерживать сеанс пользователя при сохранении (я имею в виду временное закрытие) одного сервера. Скажем, у меня есть регистрация на 3 страницы. Теперь пользователь подключается к localhost: port1 и работает на странице 2, если я хочу закрыть сервер (localhost: port1) и перенаправить пользователя на следующий сервер (localhost: port2), сохраняя сеанс живой Я имею в виду, что пользователь должен иметь возможность завершить свою регистрацию без каких-либо проблем, чем то, что я должен делать в файле конфигурации nginx. Является ли это возможным?

+0

чем проблема? ваше имя сервера потенциально странно, оно должно быть просто localhost или www.domain.com. – Pixou

+0

Пробовал с localhost. Не работал. –

+0

Если у вас действительно есть косые черты в имени server_name, обратитесь к документации. – Melvyn

ответ

1

Вы не можете сделать это с помощью nginx, поскольку nginx - это не то, что обеспечивает функциональность сеанса. Вам нужно сделать это с помощью ваших восходящих серверов, настроив их на использование хранилища сеансов, которое будет доступно всем серверам (например, базе данных или memcache) вместо серверного хранилища сеансов (например, файлы в временном каталоге на локальном жестком диске). Как вы это сделаете, это будет зависеть от того, что происходит с вашими восходящими серверами. Например, если вы используете Zend, вы можете реализовать database save handler.

(я здесь при условии, что ваша конфигурация является только примером, и что вы на самом деле не три идентичных добывающих серверов на одной машине.)

+0

Я новичок в nginx. На самом деле у меня есть 3 одинаковых сервера на одной машине. Я использую Tomcat как java-сервер. Это проблематично иметь 3 одинаковых сервера на одной машине. На самом деле я беспокоюсь, если какой-то из моих серверов tomcat перестает работать по какой-то причине. И если у меня есть сервер java в качестве восходящего сервера, что я должен сделать для получения близости сессии в nginx. –

Смежные вопросы