ruby-on-rails - Apache是如何与应用服务器交互的
为情所困
为情所困 2017-05-16 17:03:37
[Linux讨论组]

Rails的部署方案中,有一种是Apache作为Reverse Proxy,把请求转发给应用服务器(比如说Phusion Passenger)。Apache作为反向代理服务器,是如何与后面的应用服务器交互的?
比如我的Apache监听1080端口,查了一下进程信息:

> 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
... # 起了10个进程,并且我知道8353是父进程,其余的是子进程

当一个请求到来,首先会到Apache,Apache会从这些进程中分配一个进程来处理这个请求(比如分配了8391这个进程),那么8391这个进程会做什么呢?他是会把这个请求转发给后面的应用服务器(Phusion Passenger)吗?如果是这样,那么应用服务器是不是也有自己独立的进程?还是说8391这个进程就已经可以当成是应用服务器的进程了,他自己就能处理这个请求?
Apache是如何与挂在他后面的应用服务器交互的呢?

为情所困
为情所困

全部回复(1)
怪我咯

你起了apache之后它就会有十几二十个进程起来(这要看你的配置了)
然后在apache收到request之后有一个进程会处理它,如果它符合反向代理的条件,就会把request发送到你的应用服务器
其实应用服务器应该也是能够直接访问的(除非有什么防火墙啊之类的)
反正就是应用服务器收到了request,然后传回一个response给apache
apache再把response传回给浏览器
不过在这过程中可能还需要配置下对于response中间的html里面的url的改写

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号