martes, 26 de febrero de 2013

BOSH con prosody


Un servidor BOSH, es aquel servidor que da la posibilidad de tener jabber atravez de http. De he ahí que antes se le llamo http-bind. La cuestión es tener jabber a través de consultas HTTP, dando la posibilidad de usar jabber con aplicaciones web o simplemente para clientes que están detrás de proxys muy restrictivos en el quinto infierno.

Prosody, permite configurar con mucha facilidad esta maravilla del mundo moderno. Lo primero es abrir el fichero de configuración que ya todos conocemos y en la sesión de módulos habilitaremos un módulo llamado "mod_bosh". Si todo esto te sonó en sueco, dirígete a las entradas anteriores donde explico cual es el fichero de configuración y que forma tiene.

También tendremos que agregar un parámetro con los detalles de nuestro servidor bosh. En teoría la cosa es tan fácil como:

bosh_ports = { "http-bind" }

Pero eso haría que el servidor bosh escuche en el 5280 y dijimos que tenemos un servidor bosh para los usuarios que radican detrás de un servidor proxy restrictivo, por ejemplo, el proxy de una escuela o de alguna corporación de mala muerte.

En dicho lugar solo están abiertos los puertos 443 para SSL y 80 para HTTP, por tanto, nuestro servidor BOSH puede y tendrá que adaptarse a las complejas circunstancias de nuestros pobres usuarios.

bosh_ports = {
              {
                 port = 80;
                 path = "http-bind";
              },
              {
                 port = 443;
                 path = "http-bind";
                 ssl = {
                          key = "bosh.key";
                          certificate = "bosh.crt";
                       }
              }
           }


Sí! ya se. Es un reguero tremendo de parentesis y cuando copies con Vim o con cooledit se formará tremendo desorden. Suerte!

Para los usuarios de nginx, les daré las mieles antes de que larguen el pelo tratando de lograr el proxy inverso. La configuración sería más o menos así.

location /http-bind/ {
   proxy_pass  http://localhost:80/http-bind/;
   proxy_buffering off;
   tcp_nodelay on;
}

Muy importante que /http-bind/ este entre dos "/" tanto al principio como al final, si no, no pincha.

No hay comentarios:

Publicar un comentario

Si vas a decir groserias, aclara el significado para los que no somos de tu mismo país.