
Estoy intentando alojar una aplicación de nodo en www.domain.com/nodeapp. Ya tengo el sitio web www.domain.com alojado en el servidor Apache. Creé un proxy inverso en la configuración de Apache.
ProxyPass /nodeapp http://localhost:3100/nodeapp
ProxyPassReverse /nodeapp http://localhost:3100/nodeapp
Esta es la aplicación MEAN
estructura de carpetas
Y a continuación está mi archivo node app.js donde estoy vinculando mi aplicación angular en la carpeta dist (que construí usando ng build --prod
)
app.use("/api/posts", postsRoutes);
app.use("/api/user", userRoutes);
app.use("/api/client", clientRoutes);
app.use("/", express.static(path.join(__dirname, "angular")));
app.use((req, res, next) => {
res.sendFile(path.join(__dirname, "angular", "index.html"));
});
module.exports = app;
Cuando ejecuto el archivo node server.js en el puerto 3000. Solo se carga index.html y otros archivos estáticos arrojan un 404.
Luego me cansé de agregar una base-href vacía ng build --prod --base href
mientras construía la aplicación angular que cargaba la aplicación con recursos estáticos correctamente, pero cuando navego en la aplicación angular como www.domain.com/nodeapp/auth/login
directamente en la URL, la ruta del archivo estático muestra www.domain.com/nodeapp/auth/login/style.css
que obviamente es incorrecta. Los enlaces API para, por ejemplo, ( http://localhost:3100/api/posts
) no funcionan cuando se accede mediante el proxy inverso.
¿Qué estoy haciendo mal aquí? ¿Existe alguna guía de trabajo donde se aloja una aplicación MEAN junto con un servidor Apache?