PHP中怎么实现动静分离

这篇文章给大家介绍PHP中怎么实现动静分离,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联:于2013年成立为各行业开拓出企业自己的“网站建设”服务,为数千家公司企业提供了专业的网站建设、成都网站制作、网页设计和网站推广服务, 定制制作由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。

一、为什么要实现动静分离

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来区分请求的类型,并转发给不同的服务端。

动态资源和静态资源分开,使服务器结构更清晰。

二、为什么使用nginx

在传统的web项目中,并发量小,用户使用的少,所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户,理解如下图:

PHP中怎么实现动静分离

总结就是:

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动静分离实现原理

如下图所示,我们部署了 nginx 和 tomcat服务器,把所有的静态资源都放置在nginx的webroot目录下面,把动态请求的程序都放在 tomcat 的webroot目录下面。

当客户端访问服务端的时候,如果是静态资源的请求,就直接到nginx的webroot目录下面获取资源。

如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给tomcat进行处理,这样就实现了动静分离,提高了服务器处理请求的性能。

PHP中怎么实现动静分离

关于PHP中怎么实现动静分离就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页标题:PHP中怎么实现动静分离
文章出自:http://hbruida.cn/article/ggehii.html