2011-10-17 2 views
1

Je sais comment je peux mettre à l'échelle horizontalement un serveur nginx simple et équilibrer la charge, mais je me demandais si je pouvais l'adapter de la même manière avec nginx_http_push_module. Ce qui me préoccupe le plus, c'est comment les canaux créés sur d'autres serveurs seront-ils accessibles aux abonnés sur un autre serveur?Utilisation de Nginx comme serveur de comètes évolutif

Est-ce que quelqu'un peut me diriger dans une certaine direction?

Répondre

2

Vous pouvez, mais .... 1/POUR EDITEUR Vous devez faire sur chaque serveur proxy comme celui-ci

location /1/publish/ 
    { 
    resolver 127.0.0.1; 
    rewrite ^/([0-9])/publish.*$ /publish break; 
    proxy_pass http://chat1.attractiveworld.net; 
    proxy_redirect default; 
    } 
  • Vous devriez faire cela pour tous vos serveurs (/ [1- n]/publier
  • /x/publish est votre URL locale de publier à respecter une certaine protection javascript.
  • Faire une table (en mémoire partagée) ou dans la base de savoir où votre utilisateur sont (abonné)

2/POUR L'ABONNE sur chaque serveur

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; 

    } 

il est l'URL local pour recevoir des messages. De cette façon, vous avez un canal pour un client, vous n'avez pas de canal de partage entre deux clients.

+0

merci beaucoup pour cela. pouvons-nous utiliser cela en quelque sorte pour partager 1 montant de canal plus de 1 abonnés. Ainsi, les utilisateurs peuvent discuter avec les utilisateurs sur d'autres serveurs, parce que c'est ce que je veux réaliser. –

Questions connexes