Использование Nginx в качестве масштабируемого комет-сервера - PullRequest
1 голос
/ 17 октября 2011

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

Что меня больше всего беспокоит, так это какканалы, созданные на других серверах, будут доступны подписчикам на другом сервере.

Может кто-нибудь направить меня в каком-то направлении.

1 Ответ

2 голосов
/ 17 октября 2011

Вы можете, но .... 1 / ДЛЯ ИЗДАТЕЛЯ Вы должны сделать на каждом сервере такой прокси

  location /1/publish/
   {
     resolver 127.0.0.1;
     rewrite ^/([0-9])/publish.*$ /publish break;  
     proxy_pass http://chat1.attractiveworld.net;  
     proxy_redirect    default;
   }
  • Вы должны сделать это для всех своих серверов (/ [1-n] / publish
  • / x / publish - это ваш локальный URL для публикации, чтобы обеспечить некоторую защиту JavaScript.
  • Создайте таблицу (в общей памяти) или в базе данных, чтобы узнать, где находится ваш пользователь (подписчик)

2 / ДЛЯ ПОДПИСЧИКА на каждом сервере

   location /1/activity
   {
     rewrite ^/([0-9])/publish.*$ /activity break;
     proxy_pass      http://chat1.attractiveworld.net/activity;
     proxy_set_header  X-Real-IP  $remote_addr;
     proxy_method GET;
     proxy_read_timeout 40;
     proxy_send_timeout 40;
     proxy_connect_timeout 40;

   }

это локальный URL для приема сообщений.

Таким образом, у вас есть один каналдля одного клиента у вас нет общего канала между двумя клиентами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...