Node.js proxy via Apache sur Amazon EC2

J’essaie de configurer un proxy pour mon serveur Node.js sur mon instance EC2, afin que je puisse y accéder via quelque chose comme http://*.amazonaws.com/node , où * est le rest de l’URI. J’ai configuré le proxy en éditant /etc/httpd/conf/httpd.conf avec les éléments suivants:

  Order deny,allow Allow from all  ProxyPass /node http://*.amazonaws.com:3000 ProxyPassReverse /node http://*.amazonaws.com:3000 

Mon fichier Node.js server.js ressemble à ceci:

 var port = process.env.PORT || 3000; var host = '*.amazonaws.com' || process.env.HOST || '127.0.0.1'; 

Donc, quand tout est prêt, je peux accéder à / node , cependant, le répertoire / public de Node.js n’est pas utilisé comme répertoire racine du document, donc je reçois les 404 pour tout fichier index.html, car il suppose qu’il est dans le répertoire / public . Par exemple, Firebug signale un 404 pour http://*.amazonaws.com/javascripts/rails.js et 3 autres fichiers, ce qui signifie qu’il ne http://*.amazonaws.com/javascripts/rails.js pas le répertoire / public du Node.js.

Il est bon de noter que si je modifie les chemins dans le fichier index.html, tout fonctionne, mais je préférerais ne pas avoir à le faire … aussi, si je retire la configuration de ProxyPass dans httpd.conf, et que j’accède au noeud serveur de http://*.amazonaws.com:3000 , ça marche … mais idéalement, je ne voudrais pas avoir à faire ça et être capable de faire / noeud .

Ce que je veux savoir, c’est si mon proxy est configuré correctement et, dans la négative, comment puis-je le réparer afin d’accéder à / node et de redirect tous les fichiers demandés?

Je suis d’accord avec les commentateurs qu’il est possible, si vous utilisez un middleware statique express, que vous ayez mal configuré le mode express.

Toutefois, si vous souhaitez que Apache gère les requêtes statiques, il s’agit de la syntaxe de configuration apache permettant de créer une exception ProxyPass:

 ProxyPass /javascript/ ! 

Vous devez également vous assurer que vous avez un ensemble DocumentRoot , mais cela devrait passer par toutes les requêtes adressées au répertoire JavaScript à Apache, qui traitera les requêtes dans ce répertoire de la manière que vous avez configurée.