nginx如何实现动静分离

(*-*)浩
(*-*)浩 原创
2019-07-15 11:50:27 6325浏览

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。

准备一个nginx代理两个http分别处理动态和静态。也可以让nginx代理自己解析静态网页,不过nginx又代理又解析网站感觉压力也挺大的。

这里nginx的重要的配置如下。

 location / {
            root   /var/www/html/upload;
            index  index.php index.htm;
        }    
 location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ {
 
                proxy_pass http://192.168.43.22:80;
        }
        location ~ \.php$ {
            proxy_pass   http://192.168.43.62:80;
        }

location / 的作用

定义了请求代理的时候nginx去/var/www/html/upload 下寻找index.php 当他找到index.php的时候匹配了下面的正则 location ~ \.php$。

location ~ \.php$ 的作用

以php结尾的都以代理的方式转发给http(192.168.43.62),http1 去处理,这里http1要去看自己的配置文件 在自己的配置文件中定义网站根目录 /var/www/html/upload 找.index.php 然后处理解析返回给nginx 。

location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ 的作用

以html等等的静态页面都交给http2(192.168.43.22)来处理 ,http2 去找自己的网站目录 然后返回给nginx 。

两个http放的肯定是一样的目录,只不过每个服务器的任务不一样。

代理本身要有网站的目录,因为最上面的 location / 先生效 如果没有目录 会直接提示找不到目录 不会再往下匹配。

3个服务器放网站的目录一样 网站文件一样, http的配置文件根目录要指定对。

更多Nginx相关技术文章,请访问Nginx使用教程栏目进行学习!

以上就是nginx如何实现动静分离的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。