apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: wms-ingress namespace: wms-system labels: app: cpte-wms annotations: # 使用 Nginx Ingress Controller kubernetes.io/ingress.class: "nginx" # 重写目标路径(根据后端服务需要配置) nginx.ingress.kubernetes.io/rewrite-target: /$2 # SSL 重定向 nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/force-ssl-redirect: "true" # 代理配置 nginx.ingress.kubernetes.io/proxy-body-size: "50m" nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" nginx.ingress.kubernetes.io/proxy-send-timeout: "60" nginx.ingress.kubernetes.io/proxy-read-timeout: "60" nginx.ingress.kubernetes.io/proxy-buffer-size: "128k" nginx.ingress.kubernetes.io/proxy-buffers-number: "4" # 限流配置(可选) # nginx.ingress.kubernetes.io/limit-rps: "100" # nginx.ingress.kubernetes.io/limit-connections: "10" # CORS 配置(跨域) nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-origin: "*" nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, DELETE, PATCH, OPTIONS" nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization" nginx.ingress.kubernetes.io/cors-allow-credentials: "true" nginx.ingress.kubernetes.io/cors-max-age: "1728000" # 健康检查 nginx.ingress.kubernetes.io/health-check-path: "/actuator/health" nginx.ingress.kubernetes.io/health-check-interval: "30s" nginx.ingress.kubernetes.io/health-check-timeout: "5s" # 会话保持(可选) # nginx.ingress.kubernetes.io/affinity: "cookie" # nginx.ingress.kubernetes.io/session-cookie-name: "WMSSESSION" # nginx.ingress.kubernetes.io/session-cookie-hash: "sha1" spec: ingressClassName: nginx tls: - hosts: - wms.yourcompany.com secretName: wms-tls-secret # 需要提前创建 TLS Secret rules: - host: wms.yourcompany.com http: paths: # 基础服务 - path: /api/wms/basic(/|$)(.*) pathType: Prefix backend: service: name: wms-basic-service port: number: 80 # 入库服务 - path: /api/wms/inbound(/|$)(.*) pathType: Prefix backend: service: name: wms-inbound-service port: number: 80 # 出库服务 - path: /api/wms/outbound(/|$)(.*) pathType: Prefix backend: service: name: wms-outbound-service port: number: 80 # 库存服务 - path: /api/wms/inventory(/|$)(.*) pathType: Prefix backend: service: name: wms-inventory-service port: number: 80 # 调度服务 - path: /api/wms/schedule(/|$)(.*) pathType: Prefix backend: service: name: wms-schedule-service port: number: 80 # Swagger/Knife4j 文档 - path: /doc.html pathType: Prefix backend: service: name: wms-inbound-service port: number: 80 # Actuator 监控端点(建议限制访问 IP) - path: /actuator(/|$)(.*) pathType: Prefix backend: service: name: wms-inbound-service port: number: 80 --- # HTTP 版本(不带 HTTPS,用于测试环境) apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: wms-ingress-http namespace: wms-system labels: app: cpte-wms annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/proxy-body-size: "50m" nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" nginx.ingress.kubernetes.io/proxy-send-timeout: "60" nginx.ingress.kubernetes.io/proxy-read-timeout: "60" spec: ingressClassName: nginx rules: - host: wms-dev.yourcompany.com http: paths: # 基础服务 - path: /api/wms/basic(/|$)(.*) pathType: Prefix backend: service: name: wms-basic-service port: number: 80 # 入库服务 - path: /api/wms/inbound(/|$)(.*) pathType: Prefix backend: service: name: wms-inbound-service port: number: 80 # 出库服务 - path: /api/wms/outbound(/|$)(.*) pathType: Prefix backend: service: name: wms-outbound-service port: number: 80 # 库存服务 - path: /api/wms/inventory(/|$)(.*) pathType: Prefix backend: service: name: wms-inventory-service port: number: 80 # 调度服务 - path: /api/wms/schedule(/|$)(.*) pathType: Prefix backend: service: name: wms-schedule-service port: number: 80 # Knife4j 文档 - path: /doc.html pathType: Prefix backend: service: name: wms-inbound-service port: number: 80