簡體   English   中英

在 Nginx Ingress AKS 上設置 Angular 應用程序

[英]Setup Angular application on Nginx Ingress AKS

我在 Azure Kubernetes 中部署了一個 Angular SPA 應用程序。 我試圖通過 Ingress Nginx 控制器訪問應用程序。 Ingress 指向 xxx.xxx.com,應用部署在路徑“/”中。 因此,當我訪問該應用程序時,該應用程序加載良好。 但是,當我嘗試通過直接在瀏覽器中輸入 index.html 來導航到除 index.html 之外的任何其他頁面時(例如:eee.com/homepage),我得到 404 Not Found。

以下是dockerfile內容

# base image
FROM nginx:1.16.0-alpine
# copy artifact build from the 'build environment'
COPY ./app/ /usr/share/nginx/html/
RUN rm -f /etc/nginx/conf.d/nginx.config
COPY ./nginx.config /etc/nginx/conf.d/nginx.config
# expose port 80
EXPOSE 80
# run nginx
CMD ["nginx", "-g", "daemon off;"]

入口.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-frontend-ingress
  namespace: app
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/add-base-url: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - xxx.com
    secretName: tls-dev-app-ingress
  rules:
  - host: xxx.com
    http:
      paths:
      - backend:
          serviceName: poc-service
          servicePort: 80
        path: /

配置文件

server {

  listen 80;

  location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;
  }

  error_page   500 502 503 504  /50x.html;

  location = /50x.html {
    root   /usr/share/nginx/html;
  }

}

您可以添加一個配置片段,負責重寫/任何路徑:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: app-frontend-ingress
  namespace: app
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: "true"    
    nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite /([^.]+)$ / break;
      [...]

例如,如果您訪問host.com/xyz ,它將被重定向到host.com

暫無
暫無

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

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