Configurer NGinx pour servir des fichiers statiques et passer par le proxy certaines URL

Le site est presque entièrement contenu dans un fichier HTML. Tous les autres fichiers peuvent être des images, css ou javascripts et éventuellement des fichiers json.

server { listen 80; server_name git.vosnax.ru; location / { try_files $uri "/index.html"; root /home/sybiam/prod/blog; index index.html; } } 

C’est ma configuration actuelle, mais ce n’est pas parfait. Il redirecta toutes les requêtes vers index.html sauf si le fichier existe, ce qui est correct.

  • Pour certaines raisons, cela supprime les arguments GET. Je voudrais les garder comme je peux les utiliser dans JavaScript.

Maintenant, je voudrais append une certaine persistance au site. Comme pour sauvegarder et charger les jsons depuis un serveur avec une authentification très simple, cela prend en charge GET et POST. Ce qui signifie que je ne peux pas utiliser JSONP .

La question est seulement de savoir comment configurer nginx pour transférer toutes les demandes de laisser dire /api/* à mon serveur web pyramidal et tout le rest à index.html sauf si le fichier existe.

Je pourrais probablement héberger le serveur sur un domaine différent pour faciliter les choses, mais je ne sais pas comment gérer les requêtes crossdomain. CORS n’est pas pris en charge sur l’ancien IE.

EDIT: Apparemment, les arguments de la requête étaient toujours disponibles, donc ce n’est plus un problème. Mon javascript remplaçait le chemin d’access au chargement et supprimait le window.location.search .

tout le rest à index.html à moins que les fichiers existent est le bit try_files vous avez dans votre location / -block déjà

pour ne transmettre que les requêtes /api/* à votre autre serveur, vous ajoutez les éléments suivants à votre bloc serveur (en tant que frère de votre location / -block):

 location /api/ { proxy_pass http://address_of_server_your_passing_to; } 

voir la documentation si vous souhaitez plus d’informations sur la correspondance d’une requête lorsqu’il y a plusieurs blocs d’emplacement