Apache如何与Application Server通信

时间:2014-08-29 06:49:52

标签: apache http webserver passenger reverse-proxy

我使用Apache作为 反向代理 ,在其后面我使用Phusion Passenger(Rails服务器)作为 Application Server 即可。我对 Apache 如何与 Phusion Passenger (后面是 Application Server )进行通信感到困惑。 这是我得到的httpd

> ps aux | grep /MyWebsite/bin/httpd
googly    8353  0.0  0.0  73856  3280 ?        Ss   Aug26   0:00 /MyWebsite/bin/httpd -d /MyWebsite -f var/state/apache-1080/httpd.conf
googly    8391  0.0  0.0  73856  1828 ?        S    Aug26   0:00 /MyWebsite/bin/httpd -d /MyWebsite -f var/state/apache-1080/httpd.conf
... # showing that 8353 forks 10 process, and 8353 is the father process

当HTTP请求到来时,Apache会分配一个进程来处理此请求(例如进程8391),并将其传递给Application Server。

我的问题是,这件事真的发生了什么? Apache如何与Application Server通信?我认为在这种情况下,不同的Application Server是相似的。

8391是否将请求传递给Phusion Passenger?如果是这样,Phusion Passenger应该有自己独立的进程,对吗?或者8391可以被视为Phusion Passenger进程,它可以自己处理请求吗?

1 个答案:

答案 0 :(得分:1)

  • Apache接受以线程
  • 生成的请求
  • 它将请求发送回您的应用程序服务器。
  • 直到它从应用服务器获得响应,Apache线程将处于等待/运行状态。
  • Apache向客户发回请求。
  • Apache在确认数据后关闭连接。
  • 一旦apache确认数据,应用程序服务器线程就会关闭。