SORU
3 Temmuz 2013, ÇARŞAMBA


Golang üretim uygulama yapılandırma web

O sizin için çalışan üretiminde desteklerinin edin:

Senin bir web uygulaması çalıştırmak için / yapılandırma yığını nedir?

İnsan standart kütüphane net/http paketi, bir sunucu çalışmasını sağlamak için kullanmanın yanı sıra bu konuda pek görmedim. Nginx bir server - nginx with go isteklerini iletmek için kullanarak okudum

Bu bana biraz kırılgan görünüyor. Örneğin, sunucu makine (ek yapılandırma komut olmadan) yeniden başlatıldığında otomatik olarak yeniden başlatın.

Daha katı bir üretim kurulum var mı?

Bir kenara benim niyet - ben dışarı planlama bir güç GERİSİ arka uç sunucu için benim bir sonraki proje ve istediğiniz emin olmak için Gitmek olacak uygun fırlatma projesini hayata yatırım çok fazla.

CEVAP
3 Temmuz 2013, ÇARŞAMBA


Git programları, bağlantı noktası 80 üzerinde dinleme ve HTTP istekleri doğrudan hizmet verebilir. Bunun yerine, bağlantı noktası 80 dinler ve Bağlantı programı birbirine bağlayan, Git programınızı önünde bir ters proxy kullanmak isteyebilirsiniz,, 4000 söylüyorlar. İkincisi yapmak için pek çok nedeni vardır: Go programı çalıştırmak için root olarak sahip, diğer web siteleri aynı host, SSL sonlandırma, Yük Dengeleme, giriş, açık/hizmetleri vb. hizmet değil

Ön HAProxy kullanıyorum. Herhangi bir ters proxy işe yarayabilir. Nginx de harika bir seçenek (daha fazla yapmanın HAProxy çok daha popüler ve yetenekli.

HAProxy çok kolay documentation (HTML version) okursanız yapılandırmak için. Git benim projelerinden biri için haproxy.cfg benim bütün dosya bir başlangıç pont ihtiyaç halinde takip eder.

global
        log     127.0.0.1       local0
        maxconn 10000
        user    haproxy
        group   haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        timeout connect 5000
        timeout client  50000
        timeout server  50000

frontend http
        bind :80
        acl  is_stats  hdr(host)       -i      hastats.myapp.com
        use_backend    stats   if      is_stats
        default_backend        myapp
        capture        request header Host     len     20
        capture        request header Referer  len     50

backend myapp
        server  main    127.0.0.1:4000

backend stats
       mode     http
       stats    enable
       stats    scope   http
       stats    scope   myapp
       stats    realm   Haproxy\ Statistics
       stats    uri     /
       stats    auth    username:password

Nginx daha kolay.

Hizmet Denetim ile ilgili olarak, bir sistem hizmeti olarak ben yürütüyorum. Herkes bunu yapıyor sanırım. Sunucum Ubuntu çalışan, Sonradan görme kullanır. Sonradan görme /etc/init/myapp.conf Bu programımı kontrol altına almak için var:

start on runlevel [2345]
stop on runlevel [!2345]

chdir /home/myapp/myapp
setgid myapp
setuid myapp
exec ./myapp start 1>>_logs/stdout.log 2>>_logs/stderr.log

Başka bir yönü dağıtım. Bir seçenek, programın sadece ikili dosya gönderme ve gerekli varlıklar tarafından dağıtmaktır. Bu çok büyük bir çözüm IMO. Diğer seçeneği kullanın: sunucu. üzerinde derleme (Sözde “Sürekli Entegrasyon/Dağıtım” sistemi.) hiç ikili dosyaları ile dağıtma geçiyorum

Ben küçük bir kabuk betiği sunucuya çeker kodu için benim projeden uzak Git deposu oluşturur, kopyalar ikili ve diğer varlıklar ~/myapp/ ve yeniden hizmeti.

Genel olarak, her şey başka bir server Kur çok farklı değil: bir yol var kodunuzu çalıştırın ve HTTP istekleri sunmak zorunda. Uygulamada, bu tür şeyler için çok kararlı olduğunu kanıtladı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • DigitalRev TV

    DigitalRev T

    30 AĞUSTOS 2007
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011