2017-01-30 19 views
2

Ich bin ein Go-Neuling und ich stehe fest, wie ich meine Apps auf einem dedizierten Server bereitstellen kann.Wie werden mehrere Golang-Apps auf einem dedizierten Server ausgeführt?

Als ich mit PHP gearbeitet habe ich den Standard-Setup:

Apache and PHP diagram

Aber ich bin verwirrt, wie ich sollte meine Go-Anwendungen implementieren.

Ich weiß, dass ich eine einzige App am Port :80 ausführen kann, aber wie führe ich mehrere Apps aus?

Ist dies die allgemeine Idee:

Multiple apps diagram

Oder sollte ich so etwas wie dieses werden:

Nginx diagram

Kann jemand klären, wie die meisten Go-Entwickler ihre Anwendungen bereitstellen? Danke!

+0

Wenn Sie 80 mehrere Anwendungen auf Port wollen dann eine richtige Webserver Ihre Anwendungen Fronting ist ein guter Weg zu gehen. Nginx oder Apache sollte so einfach umgehen (meine Präferenz ist Nginx) – sberry

Antwort

3

Ich würde sehr empfehlen mit Caddy gehen. Sie können Ihren Server mit allen Anwendungen auf verschiedenen Ports einrichten (insbesondere mit höheren Ports, d. H. 1024 und höher, damit sie nicht root sein müssen) und anschließend die Daten mit Daten an Ihre Apps weiterleiten. Als Bonus erhalten Sie dann auch kostenlos die Let's Encrypt Zertifikats-Unterstützung!

https://caddyserver.com/docs/proxy für mehr auf der proxy Richtlinie

3

Wenn Sie mehrere Anwendungen benötigen HTTP-Anforderungen zu bedienen, sollten Sie auf jeden Fall überlegen Nginx als reverse proxy verwenden. Sie können alle Anfragen auf einer bestimmten Route weiterleiten, etwa/api an einen Dienst und/ui an einen zweiten Dienst, sofern sie an verschiedene Ports gebunden sind.

+1

Darüber hinaus können mit diesem Setup Go-Programme eingestellt werden, um auf einem [Unix-Domain-Socket] (http://nginx.org/en/docs/http/ngx_http_proxy_module) zu hören .html # proxy_pass); Das Übertragen von Daten zwischen UD-Sockets ist sehr schnell, da es nur darin besteht, Daten zwischen Speicherpuffern zu kopieren (im Gegensatz zum Durchlaufen des vollständigen TCP-Stacks). – kostix

Verwandte Themen