nginx负载均衡和配置PHP-FPM

本文探讨了在nginx环境下如何配置负载均衡和PHP-FPM,包括proxy_pass、upstream的使用,以及遇到的Host问题和解决方法。通过案例分析了nginx的配置细节,如location的rewrite规则,与php-fpm的交互,并强调了正确设置Host信息的重要性。最后,建议深入学习官方文档以更好地理解和配置nginx。
摘要由CSDN通过智能技术生成

PHP开发基本上都知道两种运行环境,分别是LNMP和LAMP。区别主要在N和A上,当然从细节上来区分,两个P也有不一样的地方。不谈之前的浅淡理解,最近一个项目上要配合进行PHP服务器指向的切换。发现A服务器上安装了apache,B服务器上安装了nginx,每次请求B服务器的nginx,业务逻辑在A上执行。

这和我之前所了解到的不太一样,一般来说apache和php通过mod_php方式运行,而要是用到nginx,往往就直接用了php-fpm。在一番查看后发现,确实基本apache的mod_php进行PHP解析,通过访问B返回了正确的脚本执行结果,而直接访问了A,发现也得到了正确的结果。区别仅在于ip地址和端口的差别。

打开nginx的配置文件nginx.conf发现类似如下一段信息:

location /papa/ {
   proxy_pass http://192.168.3.100/;
}

proxy模块相关配置参数很多,proxy_pass简单来说就是做一遍HTTP请求转发。暂时不去深究为什么用了nginx,又用了apache。个人认为这种方式存在不足之处,nginx一直以来以其静态处理性能强劲闻名(当然现在动态处理能力也很强),通过配置location匹配抓取访问URL指定字段,再转发请求到apache服务器。可以看出来动态和静态请求都全部推给了apache,那么nginx仅仅就是做了个转发,HTTP转发这种事情,总会存在损耗。完全没有利用起来nginx强劲的效果,唯一的好处可能就是做了负载均衡,方便布置集群。

 

第一想聊聊,基于压测,要求部署两套PHP的执行环境。

location /papa/ {
  proxy_pass http://test_common/;
}

upstream test_common {
  server 127.0.0.1;
}

proxy_pass 配置转发请求地址,upstream配置多个server地址,且功能真的强大,举几个简单的例子。

普通轮询模式:按照1:1的比例轮询服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值