Dois-je toujours utiliser un proxy inverse pour une application Web?

J’écris une application web dans Go. Actuellement, j’ai une mise en page qui ressemble à ceci:

[CloudFlare] -> [Nginx] -> [Programme]

Nginx fait ce qui suit:

  • Effectue des redirections (par exemple, www.domain.tld -> domain.tld )
  • Ajoute des en-têtes tels que X-Frame-Options .
  • Gère les images statiques.
  • Ecrit access.log .

Dans le passé, j’utilisais Nginx car il effectuait la terminaison SSL et d’autres tâches. Étant donné que cela est maintenant géré par CloudFlare, il ne s’agit essentiellement que d’images statiques. Etant donné que Go a un HTTP intégré FileServer et que CloudFlare pourrait prendre en charge la gestion des images statiques pour moi, j’ai commencé à me demander pourquoi Nginx est en tête en premier lieu.

Est-ce considéré comme une mauvaise idée de ne rien mettre en avant?

Dans votre cas, vous pouvez éventuellement ne pas utiliser nginx, mais je ne le recommanderais pas.

Cependant, comme je l’ai mentionné dans cette réponse, il rest encore beaucoup à faire pour “réinventer” dans Go.

  • En-têtes Content-Security
  • SSL (la connexion entre CloudFlare et vous n’est-elle pas sûre s’ils mettent fin à SSL?)
  • Mise en cache de la session SSL et HSTS
  • Limites du corps du client et tampons d’en-tête
  • Pages d’erreur 5xx et pages de maintenance au redémarrage de votre application Go
  • Connexion “gratuite” (sauf si vous souhaitez écrire tout cela dans votre application Go)
  • gzip (encore une fois, sauf si vous souhaitez l’implémenter dans votre application Go)

Exécuter Go autonome a du sens si vous utilisez un service Web interne ou quelque chose de léger, ou si vous n’avez pas vraiment besoin des fonctionnalités supplémentaires de nginx. Si vous créez des applications Web, nginx va vous aider à extraire les tâches “serveur Web” de l’application elle-même.

Je ne voudrais pas utiliser nginx du tout pour être honnête, quelques gentils cgi rapides testés go + nginx et vont juste bibliothèque autonome. Les résultats qu’il a obtenus étaient très intéressants, l’hébergement autonome semblait mieux gérer les requêtes que l’utilisation de nginx , et la recommandation finale était que si vous n’avez pas besoin de fonctionnalités spécifiques de nginx, ne l’utilisez pas. article complet

Vous pouvez l’exécuter de manière autonome et si vous utilisez une ssl partielle / complète sur votre site, vous pouvez utiliser un autre serveur http go pour redirect vers des itinéraires https sécurisés.

N’utilisez pas ngnix si vous n’en avez pas besoin. Allez SSL en moins de lignes, puis vous devez écrire dans le fichier ngnix configure. La seule raison est un enregistrement gratuit, mais je me demande combien de lignes de code se connectent à Go. Il y a un bel article en russe sur le proxy inverse dans Go en 200 lignes de code. Si Go peut être utilisé à la place de ngnix, alors ngnix n’est pas requirejs lorsque vous utilisez Go. Vous avez besoin de ngnix si vous souhaitez avoir plusieurs processus Go ou Go et PHP sur le même site. Ou si vous utilisez Go et que vous avez un problème lorsque vous ajoutez ngnix, le problème est résolu.