Quels sont les avantages de l'utilisation de Nginx en face d'un serveur web pour y Aller?
Je suis en train d'écrire certains webservices renvoyer des données JSON, qui a beaucoup d'utilisateurs.
Quels sont les avantages de l'utilisation de Nginx devant mon serveur par rapport à la simple utilisation de la go serveur http?
- pour info, il y avait beaucoup de tcp erreurs comme connection reset by peer, et i/o délais d'attente à l'aide de Go serveur http pour le service de la manipulation de 100s de gros POSTE demande une minute. Mettre nginx en face de celui - ci, non plus de problèmes.
- J'ai finalement décidé d'utiliser Go serveur http, sans NGINX, et il fonctionne très bien. Je n'ai pas été en cours d'exécution dans tout problème. Mais mon service n'est pas en cours d'exécution de grosses requêtes POST comme dans votre cas.
- CE N'EST PAS NÉCESSAIREMENT UNE OPINION FONDÉE. Clôture en tant que telle montre un grand manque de compréhension des considérations et des mises en garde qu'une réponse à une telle question peut remplir et de fournir. La réponse sélectionnée est un excellent exemple. En fait, je vois de nouvelles considérations dans toutes les réponses.
Vous devez vous connecter pour publier un commentaire.
Il dépend.
Hors de la boîte, mettre nginx en frontal comme un reverse proxy qui va vous donner:
L'Aller HTTP server est très bon, mais vous sera besoin de réinventer la roue pour faire certaines de ces choses (qui est très bien: il n'est pas censé être tout pour tout le monde).
J'ai toujours trouvé ça plus facile de mettre de nginx en frontal qui est ce qu'elle est bonne à et de le laisser faire le "serveur web" choses". Mon application ne la demande des trucs, et que le strict minimum des en-têtes/etc. qu'il doit. Ne regardez pas à mettre nginx en frontal comme une "mauvaise chose".
log
package). Si vous souhaitez enregistrer les adresses IP, l'accès aux ressources, etc, vous aurez besoin d'écrire. En va de même pour la définition des en-têtes, au-delà des notions de base. Bien que je n'ai pas de données concrètes, nginx en frontal de départ devrait vraiment pas être plus lent que d'Aller: en fait, il peut être plus rapide grâce à gzip et ses propres optimisations. Le "coût" sera plus de mémoire/CPU utilisation, mais nginx est très efficace sur ce front aussi.Le serveur http standard de Go est très bien. Si votre application principalement/ne sont "dynamiques" demandes/réponses, c'est vraiment la meilleure façon.
Vous pouvez utiliser nginx pour servir statique actifs, mais le plus probable de la norme Allez on est bien pour ça, aussi. Si vous avez besoin de plus de performances, vous devez juste utiliser un CDN ou cache autant que vous pouvez avec du Vernis (par exemple).
Si vous devez vous servir des applications différentes sur la même adresse IP, nginx est un excellent choix pour un proxy pour distribuer les demandes entre les différentes applications; si j'avais le plus souvent d'obtenir de Vernis ou de HAProxy de la boîte à outils pour ce genre de chose.
La Gorille web toolkit vous donne:
schema
paquet convertit les valeurs d'un formulaire sur une struct.Cela remplit bien l'écart entre Go
net/http
et les serveurs HTTP, comme NGINX.Personnellement, je préfère éviter l'installation et la configuration d'un autre serveur HTTP sur le dessus de
net/http
si je sais que je peux brancher une CAN à la place.Je pense que
net/http
a la plus puissante du serveur HTTP dans toute la bibliothèque standard.De https://blog.gopheracademy.com/caddy-a-look-inside/ il ressemble Allez peut gérer gzip, les erreurs, les fichiers statiques, de routage et les en-têtes http en utilisant le Middleware.
La ligne ci-dessous, le blog, montrer comment vous serait en mesure de gérer une telle demande.
- Ils gérer la journalisation des erreurs dans un vraiment très intéressant. Tant que votre middleware renvoie un code d'erreur (int), la gestion des erreurs middleware automatiquement le manipule. Ils ont même allés aussi loin que la configuration de l'ensemble du site en Aller comme Nginx serait. "La nginx.fichier conf pour tous les Gopher de l'Académie des sites web a été plus de 115 lignes de long. L'équivalent Caddyfile est à seulement 50 lignes."