Apache+Node.js+mod_proxy. Cómo enrutar un dominio a: 3000 y otro a: 80
apache reverse proxy node js (1)
Solo haga dos etiquetas <VirtualHost *:80>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.node-example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName node-example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:80/
ProxyPassReverse http://localhost:80/
</Location>
</VirtualHost>
Debería funcionar de esa manera;)
O si su aplicación localhost:80
no es un nodo, puede eliminar las etiquetas <Proxy *>
y <Location />
para ese objetivo y reemplazarlo por DocumentRoot /var/www/node-example.com
- su ruta estática a index.html
Problema: necesito alojar una aplicación de nodo y una aplicación de php en el mismo servidor en diferentes dominios.
example.com debe usar el puerto 80 como de costumbre, pero node-example.com debe enrutar al puerto 3000.
Enrutar TODO el tráfico desde el puerto 80 a 3000 funciona bien usando mod_proxy, así:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName node-example.com
ServerAlias www.node-example.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>
Sin embargo, esto hace que tanto example.com como node-example.com apunten a localhost: 3000 y ejecuten la aplicación Node.
¿Hay alguna forma de que example.com señale el puerto 80?
También estaría bien que example.com/adminadmin apuntara al puerto 80.