nginx实现动静分离
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。
动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对服务的动静分离:
静态页面交给Nginx处理,
动态页面交给服务器或Apache处理。在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式。
实现整个网站的动静分离,实现如下要求:
1.前端Nginx收到静态请求,直接从NFS中返回给客户端。
2.前端Nginx收到动态请求转交给通过FastCGI交给服务器处理。
——如果得到静态结果直接从NFS取出结果交给Nginx然后返回给客户端。
——如果需要数据处理服务器连接数据库后将结果返回给Nginx
3.前端Nginx收到图片请求以.jpg、.png、.gif等请求交给后端Images服务器处理
location ~* \.(jpg|gif)$ { # location匹配将图片交给Image处理
proxy_pass http://10.10.0.23:80; # Image服务器要开启web服务
}
至此配置就已经完成。达到了图片从图片服务器返回,静态nginx直接返回,动态交给后端进行处理。
总结
1.前端Nginx要做好location匹配,将.php与.jpg等进行反向代理。
2.后端PHP服务器要修改配置文件,PHP自带配置文件只监听本地,且只允许本地访问
3.后端Image服务器,不论是apache还是Nginx要开启WEB服务。根目录要指向图片根目录,且根目录下的图片要与原本图片文件目录结构一致。