如何将Happstack应用程序部署到生产环境



我似乎找不到任何关于这个主题的文档,任何博客文章或其他资源。

从我所看到的到目前为止似乎有对FastCGI的支持,但是这个项目已经有4年没有提交了。然后可以用mod_proxy。也许您可以将Happstack应用程序作为一个守护进程运行,它自己处理所有请求。

我只是猜测,看看有经验的人怎么说真的很好!

@Carl在他的评论中提到了这一点,所以我将详细说明我的流程,希望对您有所帮助。这些步骤是在nginx作为服务器的Debian linux上完成的。

  • install nginx with apt-get install nginx
  • /etc/nginx/sites-available/your-app-name创建一个包含
  • 的文件

  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;
       }
 }
  • /etc/init.d/nginx restart重新启动服务器
  • 启动你的Happstack应用程序,并确保它正在监听端口3000(或在location中替换适当的端口)

我使用这种策略来部署我的大多数web应用程序,除了基于erlang的应用程序;我相信Yaws能处理好自己。显然,有些人也在考虑同样的事情,但我不知道足够的评论。只要您运行的语言能够响应HTTP请求,反向代理方法就可以工作,这比指望(fast)?CGI或适当的mod_.*?更好。

选择Nginx作为服务器是因为它在提供静态文件方面比其他选择更快(这在这种情况下几乎是它所做的),而且因为我发现它真的很容易配置。这是一种偏好,不是规则。您可能也可以使用Apache或Lighttpd或其他类似的方式,但我将把解释留给更有经验的人。

相关内容

  • 没有找到相关文章

最新更新