前後端分离

在我工作前,团队 CICD 中将後端与前端一起打包,每次建构都需要花 9 分钟。这九分钟触发点是改了前端的程序码但後端程序码没改,反之後端改了程序码但前端没改,不论怎样都要九分钟...。於是我和同仁提出前後端分离的想法,其优势如下

  1. 前端建构时不必跟後端一起建构,因为他们关注点都不同,因此这可以缩短时间
  2. 除错变得较方便一点
  3. 因为关注点不同所以开发时,CICD 不必相互等待

https://ithelp.ithome.com.tw/upload/images/20210903/20104688UR3e5ZGgHR.png

上图是一个前後端分离的构想,在一台主机上,分别建立 Nginx、前端和後端的容器。红色方块 Nginx 负责接收来自 Client 的请求,利用反向代理将请求发送至前端容器或後端容器。

前端搭配一个 Nginx 并配置静态档案。

server {
        listen 80;
        location / {
                root /usr/share/nginx/html;
                index index.html index.htm;
                try_files $uri $uri/ /index.html;
        }
        location ^~ /static/ {
                autoindex off;
                alias /usr/share/nginx/html/static/;
                expires 30d;
    }
}

红色方块 Nginx 容器,反向代理配置,frontend、web_server 都是指向容器名称。

    location / {
      proxy_pass http://frontend;
    }

    location ^~ /api/ {
      proxy_pass http://web_server:8080/;
      proxy_connect_timeout 300s;
      proxy_read_timeout 300s;
      proxy_send_timeout 300s;
      proxy_set_header   Host             $host:$proxy_port;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      proxy_set_header Via    "nginx";
    }

今天就这样吧...,明天来个建构 Image 吧...


<<:  Day2 今晚我想来点CSV

>>:  【第三天 - Stack 题目分析】

Day09:09 - User服务(4) - 前端 - JWT token、修改个人资料

Hola,我是Charlie! 在Day08当中,我们完成了後端的JWT机制还有修改个人资料,在今天...

Android Studio初学笔记-Day30-心得结语

心得 终於来到铁人赛的最後一天了,老实说刚要决定参赛时还觉得自己完成不了这种写技术性文章的比赛,不过...

Day 20. Hashicorp Nomad: Docker driver image behavior

Hashicorp Nomad: Docker driver image behavior 在Has...

DAY2 序

第一页、第六页、第七页 序。 序放在第一页後面也是完全OKです! 因为第一天讲太多废话了,完全没有讲...

[鼠年全马] W32 - Vue出一个旅馆预约平台(6)

因为上个月直接专注在 [iT邦铁人赛] 直接好几个礼拜都没有刷 [鼠年全马] 进度xD 这周回归来做...