2013-06-18 41 views
6

Tôi không thể tìm thấy bất kỳ tài liệu nào, bất kỳ blog đăng nhập hoặc tài nguyên nào khác về chủ đề này.Làm thế nào để bạn triển khai một ứng dụng Happstack để sản xuất?

From what I have seen so far there seems to be support for FastCGI nhưng dự án chưa có cam kết trong 4 năm. Và sau đó có thể sử dụng mod_proxy. Có lẽ bạn chỉ có thể chạy ứng dụng Happstack như một daemon để xử lý tất cả các yêu cầu của chính nó.

Tôi chỉ đoán ở đây, thật tuyệt khi thấy những người có kinh nghiệm nói gì!

+3

Tiêu chuẩn trên hầu hết vũ trụ đang sử dụng proxy ngược nginx, những ngày này. – Carl

+1

Nói chung tôi chỉ có xu hướng sử dụng máy chủ web nội trang của happstack, điều đó là đủ cho hầu hết các trường hợp. –

Trả lời

4

@Carl đề cập đến điều này trong nhận xét của anh ấy, vì vậy tôi sẽ chỉ định quy trình của tôi với hy vọng rằng nó hữu ích cho bạn. Đây là các bước trên Linux Debian với nginx là máy chủ.

  • cài đặt nginx với apt-get install nginx
  • tạo ra một tập tin tại /etc/nginx/sites-available/your-app-name chứa

.

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; 
     } 
} 
  • khởi động lại máy chủ của bạn với /etc/init.d/nginx restart
  • bắt đầu ứng dụng Happstack của bạn, và chắc chắn rằng nó được lắng nghe trên cổng 3000 (hoặc thay thế các cổng thích hợp trong location)

tôi sử dụng chiến thuật này để triển khai hầu hết các ứng dụng web của tôi, ngoại trừ các ứng dụng dựa trên Erlang; Tôi tin tưởng Yaws để tự xử lý. Rõ ràng một số người đang xem xét cùng một điều with warp, nhưng tôi không biết đủ về điều đó để bình luận. Cách tiếp cận proxy ngược lại sẽ hoạt động miễn là ngôn ngữ bạn đang chạy có thể phản hồi các yêu cầu HTTP, đó là đặt cược tốt hơn so với đếm trên (fast)?CGI hoặc mod_.*? thích hợp.

Nginx được chọn làm máy chủ vì nó là faster than the alternatives at serving static files (khá nhiều tất cả những gì nó đang làm trong trường hợp này) và bởi vì tôi thấy nó rất dễ cấu hình. Đó là một sở thích không phải là một quy tắc. Bạn có thể có thể sử dụng Apache hoặc Lighttpd hoặc bất cứ điều gì trong cùng một cách, nhưng tôi sẽ để lại lời giải thích đó cho một người nào đó có kinh nghiệm hơn với nó.

+0

Cảm ơn! Thật trùng hợp, tôi chỉ đọc [Nginx dành cho nhà phát triển: Giới thiệu] (http://carrot.is/coding/nginx_introduction) và thiết lập nginx trong vm lang thang :) – rzetterberg

+0

Và btw, cấu hình nginx có vẻ đẹp hơn rất nhiều cấu hình hơn Apache. Tôi thực sự thích cú pháp của các tập tin cấu hình. – rzetterberg

Các vấn đề liên quan