2013-06-18 14 views
6

Ich kann nicht scheinen, irgendeine Dokumentation, irgendein blogposts oder andere Betriebsmittel zu diesem Thema zu finden.Wie stellen Sie eine Happstack-Anwendung in der Produktion bereit?

From what I have seen so far there seems to be support for FastCGI aber das Projekt hatte seit 4 Jahren kein Commit. Und dann könnte mod_proxy wahrscheinlich verwendet werden. Vielleicht können Sie die Happstack-Anwendung einfach als Daemon ausführen, der alle Anfragen selbst erledigt.

Ich rate nur hier, es wäre wirklich schön zu sehen, was Leute mit Erfahrung sagen!

+3

Der Standard in den meisten Teilen des Universums verwendet heutzutage einen Nginx Reverse Proxy. – Carl

+1

Im Allgemeinen tendiere ich dazu, den eingebauten Webserver von happstack zu verwenden, was für die meisten Fälle ausreicht. –

Antwort

4

@Carl erwähnt dies in seinem Kommentar, also werde ich meinen Prozess in den Hoffnungen spezifizieren, dass es für Sie nützlich ist. Dies sind die Schritte auf Debian Linux mit nginx als Server.

  • installieren nginx mit apt-get install nginx
  • eine Datei auf /etc/nginx/sites-available/your-app-name

enthält, erstellen.

server { 
     listen 80; 
     server_name your-app.com www.your-app.com your-app.ca; 

     rewrite .*/favicon.ico /img/favicon.ico last; 

     location ~ ^/(css|js|img|html)/ { 
       root /path/to/your/static/resource/folder; 
       expires 30d; 
     } 

     location/{ 
       proxy_pass http://localhost:3000; 
       proxy_redirect off; 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       client_max_body_size 10m; 
       client_body_buffer_size 128k; 
       proxy_connect_timeout 90; 
       proxy_send_timeout 90; 
       proxy_read_timeout 90; 
       proxy_buffer_size 4k; 
       proxy_buffers 4 32k; 
       proxy_busy_buffers_size 64k; 
       proxy_temp_file_write_size 64k; 
     } 
} 
  • Neustart des Servers mit /etc/init.d/nginx restart
  • Ihre Happstack App starten, und stellen Sie sicher, dass es auf dem Port lauscht 3000 (oder ersetzen Sie den entsprechenden Port in der location)

Ich benutze diese Taktik die meisten meiner Web-Apps zu implementieren, mit Ausnahme der Erlang-basierten; Ich vertraue Yaws, sich selbst zu behandeln. Anscheinend denken einige Leute über dasselbe nach: with warp, aber ich weiß nicht genug darüber, um zu kommentieren. Der Reverse-Proxy-Ansatz funktioniert so lange, wie die Sprache, die Sie ausführen, auf HTTP-Anfragen reagieren kann, was eine bessere Wette ist als das Zählen auf (fast)?CGI oder die entsprechende mod_.*?.

Nginx wird als Server gewählt, weil es faster than the alternatives at serving static files ist (was in diesem Fall ziemlich viel ist), und weil ich es wirklich einfach zu konfigurieren finde. Das ist eine Präferenz, keine Regel. Du könntest wahrscheinlich Apache oder Lighttpd oder was auch immer auf die gleiche Weise verwenden, aber ich werde diese Erklärung jemandem geben, der damit mehr Erfahrung hat.

+0

Danke! Was für ein Zufall, ich habe gerade gelesen [Nginx für Entwickler: Eine Einführung] (http://carrot.is/coding/nginx_introduction) und nginx in einem vagrant vm einrichten :) – rzetterberg

+0

Und btw, Konfiguration nginx scheint so viel schöner zu sein Konfigurieren Sie als Apache. Ich mag die Syntax der Konfigurationsdateien sehr. – rzetterberg