2016-06-21 12 views
0

У нас есть несколько сайтов, размещенных на выделенном сервере, и в случае, если мы решили переместить веб-сайт с выделенного сервера на облачный сервер, то что мы должны рассматривать с точки зрения программирования. Все наши веб-сайты основаны на Asp.Net & используют разные переменные сеанса и полагаются на базу данных стандарта MS SQL Server 2012.Перемещение сайтов с выделенного сервера на сервер облаков

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

Я столкнулся с одной из таких проблем с совместным хостингом несколько лет назад, когда один из веб-сайтов продолжал терять переменную сеанса для одного и того же запроса одним и тем же пользователем после расследования. Я обнаружил, что общий хостинг основан на совместном хостинге на основе фермы, поэтому тот же сеанс пользователя обслуживался разные серверы в ферме, которые приводят к потере сеанса в случае, если первый запрос отправлен на сервер 1 & второй запрос отправлен на сервер 2. Эта проблема была решена путем добавления машинного ключа в web.config.

и я не знаю, как работают облачные серверы. Я беспокоюсь о потери переменной сеанса, которую я могу обойти, используя состояние сеанса на основе SQL.

Какова другая точность, которую нужно предпринять, прежде чем подписываться на облачный веб-сервер, с точки зрения конфигурации или программирования.

ответ

1

Всякий раз, когда вы переходите на облачное решение, одним из важных факторов, которые следует учитывать, является «Управление государством». Когда в облаке вы просматриваете масштабирование с помощью нескольких экземпляров, и поэтому управление состоянием в процессе исключается, поскольку балансировщик нагрузки будет распространять запросы на разные экземпляры, а переменная сеанса, хранящаяся в одном экземпляре, будет недоступна для другого. Таким образом, из опций proc, таких как Sql db based, являются параметры. Я широко использовал облако лазури Microsoft. и варианты создать из штата прок сессии в лазури являются

  1. базы данных SQL лазурь на основе состояния сеанса provider.

  2. Redis кэш на основе состояния сеанса (Redis кэш предлагается в качестве управляемой услуги) link

  3. лазурь хранения таблицы на основе состояния сеанса provider

    В целом из прока является путь, и вы можете решить, на реализацию, основанную на технологии и стек облаков, которые вы выбираете.

0

Я недавно сделал это же исследование. Я согласен с @Aravind в том, что внешний репозиторий является самым безопасным/лучшим способом; однако, loadbalancer, который использует Azure (ARR), по умолчанию имеет постоянство. Проверьте свои файлы cookie, вы увидите файл cookie ARRAffinity. Это означает, что клиент всегда будет работать в том же экземпляре, насколько это возможно, тем самым позволяя использовать сессию InProc.

Опять же, внешний репо является лучшим, но если вам нужно быстро встать на лазурь или без особых усилий, это возможно.

Update: теперь вы можете включить ARR Affinity и выключать в настройках веб-приложения enter image description here

1

Есть несколько моментов, которые вы должны понимать, работая на облаке сервера.

  1. Если мы используем один сервер, такой как ECS облаком Alibaba или любым другим провайдером облачных вычислений, то настройка будет такой же, как у нас с физическим сервером.
  2. Если мы используем управляемое обслуживание, такое как RDS, облако Alibaba, необходимо позаботиться о сетевой строке (db url).
  3. Если мы используем несколько серверов за балансировщиком нагрузки в облаке, таких как SLB на облаке Alicloud, то обслуживание сеансов должно быть устранено. Рекомендуется использовать централизованный диспетчер сеансов, такой как Memcache. В противном случае нам нужно будет настроить конфигурацию loadbalancer.

Большинство моих ссылок написано в Alicloud, поскольку я работал над этим, так что несите меня. Вы также можете проверить свои пакеты веб-хостинга

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

  • Нет связанных вопросов^_^