这篇文章给大家介绍PHP中怎么实现动静分离,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1.1 什么是动静分离?
将动态请求和静态请求区分访问。
1.2 为什么要做动静分离?
静态由Nginx处理, 动态由PHP处理或Tomcat处理…
因为Tomcat程序本身是用来处理jsp代码的,但tomcat也能处理静态资源。
tomcat本身处理静态效率不高,还会带来资源开销。
1.3 如何实现动静分离?
Nginx根据客户端请求的url来判断请求的是否是静态资源,如果请求的url包含jpg、png,则由Nginx处理。
如果请求的url是.php或者.jsp等等,这个时候这个请求是动态的,将转发给tomcat处理。
总结来说,Nginx是通过url来区分请求的类型,并转发给不同的服务端。
动态资源和静态资源分开,使服务器结构更清晰。
在传统的web项目中,并发量小,用户使用的少,所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户,理解如下图:
总结就是:
1.Nginx实现负载均衡是通过反向代理实现
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
2.Nginx配置反向代理的主要参数
(1)upstream 服务池名{}
配置后端服务器池,以提供响应数据
(2)proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
2.1 Nginx静态处理优势
Nginx处理静态页面的效率远高于Tomcat的处理能力;
若Tomcat的请求量为1000次,则Nginx的请求量为6000次;
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M;
Nginx处理静态资源的能力是Tomcat处理的6倍。
如下图所示,我们部署了 nginx 和 tomcat服务器,把所有的静态资源都放置在nginx的webroot目录下面,把动态请求的程序都放在 tomcat 的webroot目录下面。
当客户端访问服务端的时候,如果是静态资源的请求,就直接到nginx的webroot目录下面获取资源。
如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给tomcat进行处理,这样就实现了动静分离,提高了服务器处理请求的性能。
关于PHP中怎么实现动静分离就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。