2013-06-18 14 views
6

Nie mogę znaleźć żadnej dokumentacji, żadnych blogów ani innych zasobów na ten temat.Jak wdrożyć aplikację Happstack do produkcji?

From what I have seen so far there seems to be support for FastCGI ale projekt nie został zatwierdzony przez 4 lata. A następnie prawdopodobnie można użyć mod_proxy. Może po prostu uruchom aplikację Happstack jako demon, który sam obsługuje wszystkie żądania.

Po prostu zgaduję, byłoby miło zobaczyć, co mówią ludzie z doświadczeniem!

+3

Standard w większości wszechświata używa obecnie odwrotnego proxy nginx. – Carl

+1

Generalnie używam wbudowanego serwera internetowego happstack, który wystarcza w większości przypadków. –

Odpowiedz

4

@Carl wspomina o tym w swoim komentarzu, więc zamierzam określić mój proces w nadziei, że będzie dla ciebie przydatny. Oto kroki na linuksie Debiana z nginx jako serwerem.

  • zainstalować nginx z apt-get install nginx
  • utworzyć plik w /etc/nginx/sites-available/your-app-name zawierający

.

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; 
     } 
} 
  • restart serwera z /etc/init.d/nginx restart
  • uruchomić aplikację Happstack, i upewnić się, że nasłuchuje na porcie 3000 (lub podstawić odpowiedni port w location)

używam tej taktyki wdrażać większość moich aplikacji internetowych, z wyjątkiem tych opartych na Erlangu; Ufam, że Yaws sobie poradzi. Wygląda na to, że niektórzy ludzie rozważają to samo, with warp, ale nie wiem wystarczająco dużo o tym, aby to skomentować. Metoda odwrotnego proxy będzie działać tak długo, jak długo używany język będzie w stanie odpowiadać na żądania HTTP, co jest lepszym rozwiązaniem niż liczenie na (fast)?CGI lub odpowiednią mod_.*?.

Nginx jest wybrany jako serwer, ponieważ jest to faster than the alternatives at serving static files (co w zasadzie jest ważne w tym przypadku), a także dlatego, że bardzo łatwo go skonfigurować. To jest preferencja, a nie reguła. Prawdopodobnie mógłbyś użyć Apache lub Lighttpd lub cokolwiek w ten sam sposób, ale zostawię to wyjaśnienie komuś bardziej doświadczonemu.

+0

Dzięki! Co za zbieg okoliczności, właśnie czytałem [Nginx for Developers: An Introduction] (http://carrot.is/coding/nginx_introduction) i konfigurowanie nginx w vagrantach vm :) – rzetterberg

+0

I przy okazji konfigurowanie nginxa wydaje się o wiele przyjemniejsze skonfiguruj niż Apache. Bardzo podoba mi się składnia plików konfiguracyjnych. – rzetterberg

Powiązane problemy