nginx 子路径部署 多个前端单页应用

来源:5-3 Nginx常见问题_多个location匹配的优先级1

leon66

2019-07-12

重定向那里 有部分前缀 需要跳转到主页 这样写会不会太繁琐了 这段nginx有什么优化空间吗

server {
    listen 80;
    server_name test-wx-h5.example.com;
    root /home/admin/apps/wx-h5-dd/;
    index index.html index.htm;
    underscores_in_headers on;


    # 重定向  精准匹配
    location = / {
        rewrite ^(.*)$ /ml/user/campList redirect;
    }
      location = /ml/ {
        rewrite ^(.*)$ /ml/user/campList redirect;
    }
    location = /ml-class/ {
        rewrite ^(.*)$ /ml/user/campList redirect;
    }
    location = /ml {
        rewrite ^(.*)$ /ml/user/campList redirect;
    }
    location = /ml-class {
        rewrite ^(.*)$ /ml/user/campList redirect;
    }


    # 子路径
    location ^~ /ml {
        root /home/admin/apps/wx-h5-dd/;
        try_files $uri $uri/ /ml/index.html;
    }
    location ^~ /ml-class {
        root /home/admin/apps/wx-h5-dd/;
        try_files $uri $uri/ /ml-class/index.html;
    }


    # 接口代理
    location /kb/ {
        proxy_pass http://127.0.0.1:7070/;
    }
  
    access_log /alidata/log/nginx/access/example.com.log access;
}
写回答

1回答

Jeson

2019-07-14

   location = /ml-class {
       rewrite ^(.*)$ /ml/user/campList redirect;
   }
   location ^~ /ml-class {
       root /home/admin/apps/wx-h5-dd/;
       try_files $uri $uri/ /ml-class/index.html;
   }

这两个location都匹配到一个路径了吧,为什么要这么写?

0
1
leon66
第一个是精确匹配/ml-class 当前端页面访问这个路径 就跳转到首页; 第二个以/ml-class 开头的路径都指向某一个前端单页应用。
2019-07-18
共1条回复

Nginx入门到实践-Nginx中间件应用+搭建Webserver架构

中间件、负载均衡、应用层安全防护、动静分离、Nginx+LUA开发等

4183 学习 · 908 问题

查看课程