Go's HTTP-Server für die Produktion verwenden [geschlossen]

8

Ich bin ein neuer PHP-Entwickler von Golang. PHP kommt mit einem eingebauten Server, der für die Produktion nicht empfohlen wird. Ich lese das schöne Buch von astaxie zur Webentwicklung in Go und auch das golang.org Beispiel beim Schreiben einer Web-App . Beide verwenden http.ListenAndServe() , um einen Webserver zu erstellen. Ich möchte nur wissen, ob dieser Server in der Produktion verwendet werden kann oder ist es nur ein Dummy-Server wie PHP eingebauten Server? Mit der Produktion meine ich, kann es riesigen Verkehr wie ein Apache oder NGNIX-Server behandeln?

    
Akash Kumar Sharma 14.06.2015, 17:07
quelle

2 Antworten

5

Kurze Antwort: JA.

Längere Antwort: Sie können den eingebauten Web-Server für den Produktionsverkehr verwenden. Es besteht eine gute Chance, dass Sie es heute verwenden, da Google einige Zugriffe darauf verwendet. Ich kenne viele Unternehmen, darunter auch die, für die ich arbeite, die sie für den Produktionsverkehr nutzen. Übrigens kenne ich keinen Webserver, der in Go weit verbreitet ist und den nicht Standard-Webserver verwendet.

Denken Sie jedoch daran, dass Sie Dinge wie Client-Timeouts optimieren müssen, um es wirklich robust zu machen, und vielleicht eingehende Verbindungen usw. einzuschränken.

    
Not_a_Golfer 14.06.2015, 17:32
quelle
3

Zur Antwort von @ Not_a_Golfer: Go's Webserver ist extrem solide und bisher ziemlich gut getestet.

Es gibt jedoch Gründe, warum Sie es hinter einen Reverseproxy wie nginx, Apache oder HAProxy setzen könnten, einschließlich:

  • SSL-Terminierung (nginx verfügt über viele zusätzliche TLS-Funktionen, die Sie teilweise selbst implementieren müssen, z. B. einfache OCSP-Unterstützung für das Heften)
  • Proxy-Caching (statische Antworten aus dem Cache oder 500, falls Ihre Go-App abstürzt)
  • Performante Protokollierung
  • SPDY-Unterstützung (obwohl Go & amp; nginx wird wahrscheinlich HTTP / 2 zur gleichen Zeit bekommen)
  • Integrierte gzip-Unterstützung und Optionen
  • Dateideskriptor-Caching für statische Dateien

Ich generell ziehe es vor, nginx vorzusetzen, wenn ich die Option habe, denn obwohl Sie all diese Funktionen in Go implementieren können, gibt es ein bisschen Radregeneration. Mit Middleware wie Gorilla / Handlern und Gos eigener crypto / tls-Bibliothek und wenn Du bist keine Ops-Person und / oder willst die Dinge wirklich dünn halten, dann läuft alles direkt von Go, ist immer noch gut für die Produktion.

    
elithrar 14.06.2015 21:35
quelle

Tags und Links