Problema con servidor Windows, XAMPP y Rails


#1

Hola a todos:

Primero que todo, debo admitir que me incomoda un poco hacer otra
pregunta más, ya que no es mucho lo que aporto en la lista (supongo que
cuando posea conocimientos mas avanzados podré dar soluciones a los
problemas que tengan, pero por el momento debo reconocer que la mayoría
de las preguntas que aqui hacen son avanzadas y mis conocimientos no dan
para tanto).

Bueno, paso a contar mi problema: Necesito correr 2 aplicaciones hechas
en RoR, pero estas deben correr por el puerto 80 (puerto que, además,
está siendo utilizado por XAMPP)

Como alternativa al puerto 80, en el lugar donde esta el servidor,
liberaron un puerto (8080), en el cual puedo echar a correr las
aplicaciones, pero aun asi no sé como correr 2 aplicaciones al mismo
tiempo por este puerto.

El servidor donde deben correr es un Windows 2003 Server y por norma de
la empresa no pueden ser liberados más puertos salvo los ya mencionados
(80, que esta siendo utilizado por XAMPP y 8080, el cual esta libre en
estos momentos).

Esperando tener una buena acogida, y agradeciendo de antemano se despide

Juan Ramírez Órdenes.


#2

Hola,

El servidor donde deben correr es un Windows 2003 Server y por norma de
la empresa no pueden ser liberados más puertos salvo los ya mencionados
(80, que esta siendo utilizado por XAMPP y 8080, el cual esta libre en
estos momentos).

las opciones para poder ejecutar aplicaciones en un mismo puerto pasan
por tener un servidor delante que se ocupe de dirigir el tráfico a cada
una de las aplicaciones. Las aplicaciones estarían levantadas cada una
en su puerto no público, probablemente con un mongrel, y tu servidor
tiene que decidir a qué aplicación te manda según algún criterio.

Lo más fácil es tirar de subdominios. Por ejemplo, podrías hacer que
myappA.tuserver:8080 dirija a la aplicación A y myappB.tuserver:8080
dirija a la B. Para eso puedes poner un apache y definirle diferentes
virtual hosts, uno por dominio. Esto podrías hacerlo incluso en el
apache del XAMPP.

Si no puedes usar subdominios, puedes hacer mod_rewrite de direcciones
dependiendo del path. Puedes hacer que la
direcciónmiservidor:8080/myapp rediriga a A y miservidor:8080/myappB redirija a
B.

Otra opción es levantar directamente la aplicación con jruby+glassfish y
utilizar los contextos que te da glassfish corriendo cada aplicación en
uno de los contextos. Esta opción es la que está probablemente menos
documentada, así que es posible que no la quieras explorar, pero ahí está :wink:

De todos modos, no soy experto en sistemas, así que seguro que hay otras
formas de hacer esto que se me han pasado.

suerte,


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez


#3

Puedes cargar mongrel y configurarte un vhost en apache. Y luego hacer
que todas las peticiones que vayan a aplicacion.servidor.org(por poner
algo) se envíen a los mongrels.
Lo de como cargar mongrel está explicado en su web, así que no creo
necesario explicarlo.
La configuración del vhost de apache sería algo así:

|<VirtualHost *:80>
ServerName aplicacion.servidor.org

DocumentRoot C:\aplicacion\public

RewriteEngine On

<Proxy balancer://mongrelcluster>
BalancerMember http://127.0.0.1:3000
BalancerMember http://127.0.0.1:3001

Redirect all non-static requests to Mongrel

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrelcluster%{REQUEST_URI} [P,QSA,L]

ProxyPass / balancer://mongrelcluster/
ProxyPassReverse / balancer://mongrelcluster/
ProxyPreserveHost on

<Proxy *>
Order deny,allow
Allow from all

Custom log file locations

ErrorLog ||C:\aplicacion\public||error.log
CustomLog ||C:\aplicacion\public||access.log combined

|

Esto no está probado en windows pero creo que debería funcionarte con
XAMPP (suponiendo que la versión de apache no sea muy antigua).

Saludos