start - Phusion Passenger+Nginx Virtual Host Configuration para la aplicación Ruby on Rails en Debian 6
install ruby through rvm (1)
Espero que hayas encontrado la solución por ahora, pero por el bien del archivo stackoverflow voy a darte una respuesta.
Lo que significa que debes usar proxy inverso ( http://wiki.nginx.org/RubyonRailsMongrel ) con nginx, mientras que tu upstream será un servidor de pasajeros | thin | unicorn | puma | mongrel (elige tu favorito) ejecutando tu aplicación dedicada de rieles ( Utilizaré un código duplicado para aislar el entorno de ejecución de tu cliente). Podrás proporcionar un equilibrio de carga con este método.
Ahora, estipula el uso de Passenger, puede usar una configuración realmente simple si compila nginx con extensión de pasajeros. (Vaya a http://www.modrails.com/documentation/Users%20guide%20Nginx.html para obtener una mejor explicación)
server {
listen 80;
listen [::]:80 default_server ipv6only=on; # please for a better world be IPv6 compliant !
server_name www.client1.product.com;
root /my/rails/app1;
passenger_enabled on;
}
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
server_name www.client2.product.com;
root /my/rails/app2;
passenger_enabled on;
}
.......
Cuál es mi pregunta es cómo mapeo todas las instancias con el puerto 80 con subdominios idénticos apropiados utilizando Phusion Passenger + Nginx en Debian 6 para la siguiente situación.
Nota: soy novato en ruby on rails y alojamiento de servidores, no puedo expresar mi visión como pregunta, por favor perdónenme si me equivoco o corríjanme.
Hola, estoy teniendo un producto desarrollado usando Ruby on Rails, yendo a alojar en un servidor dedicado con 32 GB Ram y 8 Core Server Processor. Cada cliente debe tener una base de datos separada y una instancia de raíles separada. Estoy replicando - duplicando el código para cada cliente con carpetas separadas y dando diferentes nombres de bases de datos y cada porción como una instancia diferente. Básicamente, el código fuente es el mismo para todos los clientes, pero solo difiere el nombre de la base de datos, por lo que estoy colocando el código fuente en diferentes carpetas y mirando como una aplicación de rieles por separado para cada cliente.
Por ejemplo:
Estoy teniendo un dominio temporal principal
www.product.com
Para cada cliente necesito tener un subdominio separado asignado al mismo servidor con el mismo puerto (80) pero con un nombre de instancia de raíles diferente
www.client1.product.com
www.client2.product.com
www.clientn.product.com
Como sé que si comienzo una instancia de raíles, cada uno comenzará en un puerto separado.
client1 with start at port 3001
client2 with start at port 3002
client3 with start at port 3003
¿Cuál es mi pregunta? ¿Cómo puedo mapear todas las instancias con el puerto 80 con subdominios idénticos apropiados usando Phusion Passenger + Nginx en Debian 6?
si tengo acceso
www.client4.product.com
, necesito que la aplicación se ejecute en el puerto 3004