簡體   English   中英

Angular+Springboot 應用程序的入口文件

[英]Ingress file for Angular+Springboot application

我有一個 Angular + Spring 啟動微服務應用程序,其中大約有 10 個后端微服務。 它是一個相當大的應用程序,可能有超過 100 個 REST 端點。 我們正在考慮遷移到本地 kubernetes。 我想知道如何定義入口文件,是否還需要在入口中的 spring 應用程序中定義所有應用程序 REST 端點? 我檢查了幾個示例,我可以看到它們使用入口作為 Spring API 網關。 那是正確的架構嗎? 誰能指出我一個合適的例子?

主要取決於您的要求,您嘗試使用的內容。

如果您只是打算在 sprint 引導中使用Nginx入口,您可以簡單地使用Nginx 入口 controller並設置入口

如果您需要API 網關功能,例如重新限制、API 密鑰、基本身份驗證等,您需要使用 API 網關,如 Kong 和所有。

大約 10 個后端微服務。 它是一個相當大的應用程序,可能有超過 100 個 REST 端點。

您可以使用不同的路由或不同的基於路徑的路由為每個微服務創建1個入口。

基於子域的路由

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
  rules:
    - host: service-1.example.com
      http:
        paths:
          - backend:
              serviceName: service-1
              servicePort: 9000
            path: /(.*)
    - host: service-2.example.com
      http:
        paths:
          - backend:
              serviceName: service-2
              servicePort: 8000
            path: /(.*)
    - host: service-3.example.com
      http:
        paths:
          - backend:
              serviceName: service-3
              servicePort: 8000
            path: /(.*)

基於路徑的單域路由api.example.com

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: minimal-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  -  host: api.example.com 
     http:
      paths:
      - path: /service-1
        pathType: Prefix
        backend:
          service:
            name: service-1
            port:
              number: 80
      - path: /service-2
        pathType: Prefix
        backend:
          service:
            name: service-2
            port:
              number: 80

因此,當任何請求到達特定服務時,域一會將您的請求路由到服務。

service-2.example.com ---> service-2 
service-3.example.com ---> service-3 

基於路徑的Nginx 中,將根據 URL 中的路徑前綴重定向請求

api.example.com/service-2/* ---> service-2 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM