前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx 实现动静分离

nginx 实现动静分离

原创
作者头像
用户8639654
修改2021-07-14 16:40:57
4300
修改2021-07-14 16:40:57
举报
文章被收录于专栏:云计算运维云计算运维

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。

1、准备环境

准备一个nginx代理 两个http 分别处理动态和静态。

代码语言:javascript
复制
  location / {
            root   /var/www/html/upload;
            index  index.php index.htm;
        }

2、本地配置

代码语言:javascript
复制
  location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ {
            root   /var/www/html/move;
            index  index.php;
        }
  location ~ \.php$ {
            root   /var/www/html/static;
            index  index.html;
        }

3、代理配置

代码语言:javascript
复制
  location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ {
                proxy_pass http://172.17.14.2:80;
        }
  location ~ \.php$ {
                proxy_pass http://172.17.14.3:80;
        }

4、配置项说明

location / 的作用

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

location ~ .php$ 的作用

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

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

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、准备环境
  • 2、本地配置
  • 3、代理配置
  • 4、配置项说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档