[脑子不能闲下来系列之二]
利用NGINX前端反向代理实现NGINX动静分离
该项目拓扑如下:
当用户请求发到前端NGINX反向代理服务器是NGINX通过代理规则将静态内容如:HTML、CSS、JS、JPG等文件的请求发到后端的HTML静态服务器上。将动态内容如:PHP、JSP、ASP等文件的请求发到后端的NGINX与PHP-FPM结合的动态服务器上。从而实现动态内容和静态内容的分离提高服务的处理效率。
优缺点:
- 比单台服务器可以承载更多的服务请求
- 大大减少了后端服务器的压力
- 架构易于今后扩展
- 但前端服务器容易成为瓶颈和单点故障应该做节点备份与负载均衡
- 后端maradb与nfs的服务器容易成为I/O瓶颈应使用更高性能的SSD设备
配置
- 创建四个虚拟机分别为master(ip:192.168.1.10)、node1(ip:192.168.1.11)、node2(ip:192.168.1.20)、node3(ip:192.168.1.30)。node2、node3的地址分别为192.168.1.20、192.168.1.30。并先master节点同步时间。
- master、node2、node3分别安装NGINX。其中node3安装PHP-FPM服务。node1安装mariadb和nfs-util服务
- 配置nfs共享WordPress源码文件夹供服务器访问。并修改共享文件夹的属性给与其他人可写属性
mariadb进行初始化配置,并开放指定账户访问WordPress数据库。 - 为master主机NGINX前端调度器提供如下配置:
- NGINX通过fastCGI协议连接代码如下:
测试
- 在浏览器中访问192.168.1.10按步骤安装好WordPress并连接数据库文件
- 分别停止静态服务器的NGINX服务访问HTML文件
- 停止动态服务器的NGINX服务访问PHP文件
总结
- nfs权限是文件夹的权限与挂载权限的交集
- NGINXlocation规则要按顺序写
- 细心 细心 细心 手动捂脸