侧边栏壁纸
  • 累计撰写 45 篇文章
  • 累计创建 15 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

【Nginx】使用Nginx实现动静分离

Administrator
2024-09-21 / 0 评论 / 0 点赞 / 64 阅读 / 6674 字 / 正在检测是否收录...

1. 什么是动静分离

动静分离,就是将css、js、jpg等静态资源和后端程序等动态资源分开处理,以此提高服务器响应速度,提高性能。

2. nginx如何实现动静分离

主机ip

角色

已安装软件

对外暴露端口

11.0.1.10

静态请求服务器

nginx

80

11.0.1.50

动态请求服务器

tomcat

8080

11.0.1.51

动态请求服务器

tomcat

8080

修改nginx配置文件:

upstream fzjh{
    server 11.0.1.50:8080;
    server 11.0.1.51:8080;
}
server {
    listen       80;
    server_name  localhost;
    location / {
        proxy_pass http://fzjh;
    }
    location ~* \.(css|js|html)$ {
        root  html;    # 在本例中的绝对路径为 /usr/local/nginx/html
    }
    location ~* \.(jpg|flv|doc)$ {
        root  /data/source;   # 这里就写成了绝对路径
    }
}

在这个配置中,以(css|js|html)结尾的资源文件会到html目录下寻找。以(jpg|flv|doc)结尾的资源文件会在/data/source路径下寻找。所以我们要将这些资源类型文件提前放入对应的路径中。

在`/usr/local/nginx/html`下新建了haha文件夹,放入了一个简单的mypage.html页面。

在/data/source路径下放入了一张cat.jpg的图片。

3. 发出静态资源请求

http://11.0.1.10/haha/mypage.html

http://11.0.1.10/cat.jpg

说明:对于nginx实现动静分离,我们还可以单独部署多台nginx服务器用于保存静态资源,再加一组upstream实现负载均衡。

4. 动静分离的配置正则说明

基本语法:

location [=|~|~*|^~]/uri/{...} 

= 严格匹配, 如果这个查询匹配,将停止搜索并立即处理此请求。

~ 区分大小写匹配。

~* 不区分大小写匹配。

!~ 区分大小写匹配。

!~* 不区分大小写匹配。

几个示例说明

location = /{
    #只匹配/查询
}
location /{
    #匹配任何查询,因为所有请求都以/开头。但是正则表达式和长的块规则将被优先查询匹配
}
location ^~ /images/{
    #匹配任何以/images/开头的查询并停止搜索
}
location ~*.(gif|jpg|jpeg)${
    #匹配任何以gif|jpg|jpeg结尾的请求
}

0
博主关闭了所有页面的评论