Ole*_*nko 1 apache ruby-on-rails passenger nginx
Rails 应用程序实际上是如何工作的?假设我们有 nginx +passenger + Ubuntu,所以我的问题是:
请不要给我“ nginx处理请求”之类的答案;我需要更多的东西,或者你可能知道我可以阅读的来源。
这样有助于理解这个故事:
很久以前,当网络还很新的时候,只有静态页面——只有.html页面。因此,网络服务器软件将有效地读取文件并将文件内容发送给请求者(浏览器)。
然后是动态网络。在这里,页面的内容必须动态生成,以响应请求。这意味着,必须有一些程序在服务器上运行,它了解请求的内容以及应该作为响应的内容。这导致了CGI (Common Gateway Interface). 不是读取.html文件并将其内容发送到客户端,现在您CGI在服务器上执行一个程序,该程序将输出html可以发送给请求者的内容。这些 CGI 脚本可以用各种编程语言编写。
随着 CGI 脚本日益复杂,需要有专门的辅助应用程序来抽象出所有通用(和机械)逻辑。这将简化编写业务逻辑。这些专门的助手通常称为application servers或containers。
这些容器还有助于保持 Web 服务器的简单和精简,因为执行 cgi 脚本(无论它是用哪种编程语言编写的)的复杂性现在已从 Web 服务器委托出去。所有Web服务器需要知道的是,如果在请求URL结束.php,那么它应该委托请求FASTCGI,或者URI开始/javaapp/,然后委托给tomcat等让我们称这些辅助应用,APP SERVERS或Container
乘客,就是这样一种容器,旨在运行 RACK 应用程序。
什么是Rack:可以说,Rack是容器加载应用程序(如Rails应用程序)的标准化接口,就像CGI是Web服务器执行外部程序的标准化接口,
Rack 为应用程序框架(rails、merb、sinatra 等)定义了一个标准接口。如果应用程序框架符合机架接口,则container知道如何加载和执行它。
笔记:
我已经尝试为您超级简化概念。这远不及完整的解释。希望这足以让您开始自学。
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |