1、互联网动静分离架构

动静分离是指,静态页面与动态页面分开不同系统访问的架构设计方法。

七.Nginx动静分离 - 图1

2、Nginx实现动静分离

①项目准备
我们起一个springboot项目,端口9093,写一个动态方法,链接到index.html。在index.html里,引入静态js,但是工程里不引入js,将js放到静态资源服务器,目录:/home/soft/static。代码如下:

  1. @SpringBootApplication
  2. @Controller
  3. public class NginxDemoApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(NginxDemoApplication.class, args);
  6. }
  7. @GetMapping("/index")
  8. public String index() {
  9. return "index";
  10. }
  11. }

image.png
image.png
②配置Nginx
静态资源,引用我们静态服务器的静态资源路径:/home/soft/static

  1. server {
  2. listen 80;
  3. server_name 47.104.146.31;
  4. #拦截动态请求
  5. location / {
  6. proxy_pass http://localhost:9093;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. }
  9. #拦截静态资源
  10. location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
  11. root /home/soft/static;
  12. }
  13. }

③启动工程
访问http://47.104.146.31/,我们会发现,工程里面没有jquery.js,但是实际效果却引用成功了。这是因为Nginx将静态资源路径指向了:/home/soft/static。由此,动静分离小Demo成功。
image.png