为什么我们在生产环境中需要使用nginx和thin?

15

为什么我们需要在生产环境中使用nginx与thin一起安装,因为thin本身已经是一个Web服务器了。每个博客文章中人们都在使用ruby+rails+nginx+thin的组合?

3个回答

11

如Michael所述,nginx平衡了"thin"(不知道是什么意思)。但在任何ruby服务器前使用nginx的另一个原因是为了提供静态文件服务(如果您使用页面缓存,它们也可以由nginx提供),这意味着请求甚至不会触及您的ruby应用程序,从而大大提高性能。此外,尽管nginx似乎是ruby/rails社区中流行的选择,但还有其他选择,如apache。


3

不一定总是可行的。Thin 允许长时间运行的连接、流传输等等。而 Unicorn 则不允许,所以它高度依赖于您的应用程序/后端需要什么。 - user427390
没错,但 Nginx 负责处理长时间运行的连接等。 - Mike Szyndel

3

Thin和所有用Ruby编写的服务器在提供静态文件(例如图像、渲染的HTML等)时比C语言编写的服务器如Nginx和Apache要慢。


Nginx非常轻量化且具有很好的并发支持。因此,当您需要长时间传输数据,例如上传、下载或慢速客户端时,使用Nginx会更加划算。与一个在内存中挂起并等待传输结束的重型Ruby进程不同,您可以拥有一个轻量级的Nginx进程,它只在文件上传后将上传内容传递给Ruby进程。或者接收来自Rails的响应,停止Rails进程,并向客户端提供所需的响应。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接