作为一个 rails 的初学者,我想问一下,为什么网上给的部署 Rails 的时候的配置方案,大多数都是用一个前端服务器(比如 Apache 或者 nginx)加上一个后端的服务器(比如 Thin,unicorn)之类的来完成配置,我想问的是如果我不需要负载均衡,只需要一个开一个 Thin 服务就够了,那么直接把 Thin 挂到前端,就是又当前端,又当后端,这样可以么?
可以,但不合适. 前端放 Nginx 之类的是为了安全的需要,相对反代来说,thin 太脆弱了。
#1 楼 @046569 会导致什么样的问题呢?比如安全上的
#2 楼 @kakaxi2 比如常见的各种低速连接攻击。
系统资源有限,你应该让各类服务做自己更擅长的事情,比如 Nginx 相对于 Thin 更擅长处理静态资源,比如 HTML、CSS、JS、图片等,而 Thin 相对于 Nginx 就可以处理 Rails 程序。楼上说的安全问题也是非常在理的。
所以才强调 Nginx/Apache + Thin/Passenger/Unicorn。
Nginx 还是很有必要的,建议仁兄好好研究下
#1 楼 @046569 如果拆分为多台机器 只有一个服务器用来对外接收并且对内分发请求。我其余的机器在内部只要起 unicorn 就可以了嚒?
#6 楼 @so_zengtao 是的
#7 楼 @u1436612740 想必兄台已然尝试过了 可否指点一二
#5 楼 @ibugs 恩恩
#6 楼 @so_zengtao 是的,可以考虑在反代上部署静态文件。整个结构更合理。