第一種方式
(1) nginx配置中只寫前端項目的/根路徑配置
前端項目使用的Dockerfile文件內容

把前端項目編譯后生成的dist文件夾放在nginx的html默認目錄下,瀏覽器訪問前端項目時加上這個前端目錄名

(2) 前端項目中直接寫后端項目訪問的http地址

(3) k8s配置中需要添加倆ingress規則
一個是使用網址訪問前端項目的,一個是使用網址訪問后端項目的

(4)整體訪問路徑
瀏覽器 --> nginx前端地址根路徑 --> 后端ingress地址
瀏覽器(比如:賬號密碼登錄) --> 后端ingress地址
第二種方式
(1) nginx配置中不僅寫前端項目的/根路徑配置,還會寫前端訪問后端的地址路徑配置
前端項目使用的Dockerfile文件內容

把前端項目編譯后生成的dist文件夾放在nginx的html默認目錄下,瀏覽器訪問前端項目時加上這個前端目錄名

nginx配置中多增加一個訪問后端的配置

(2) 前端項目中直接寫后端項目訪問的http地址

(3) k8s配置中只需要添加一個前端的ingress規則

(4)整體訪問路徑
瀏覽器 --> nginx前端地址根路徑 --> 后端ingress地址
(比如:賬號密碼登錄)
|
|--> nginx后端地址路徑 --> 后端ingress地址
方法一和方法二的比較
(1) 除了都需要給前端項目配置一個ingress規則外,方法一需要給后端項目配置一個ingress地址,方法二不需要
(2) nginx配置中除了都需要配置前端項目路徑外,方法二還需要配置后端項目地址,使用后端在k8s中部署的服務名的方式,方法一不需要
(3) 額外的考慮
方法一的nginx配置可以直接給其他前端項目使用,也就是說所有的前端項目使用統一的一個nginx.conf配置
方法二的則不行,每一套前后端項目都需要在前端nginx.conf中添加相應的配置,項目多的話配置會顯得nginx.conf配置臃腫且不好管理
方法一需要額外添加一個后端的ingress規則,這樣對后端服務的訪問來說是不是有點不安全,畢竟可以直接訪問使用,而方法二訪問后端服務,需要通過使用nginx進行代理訪問,安全性上是不是更好一些?
方法一和方法二的后端假如副本數都超過1,則前端訪問使用的話,應該都是通過使用ingress規則自帶的負載均衡 輪詢的方式來訪問使用的吧
