Я развернул Angular приложение SPA в Azure Kubernetes. Я пытался получить доступ к приложению через контроллер Ingress Nginx. Вход указывает на xxx.xxx.com, и приложение развертывается по пути "/". Поэтому, когда я получил доступ к приложению, приложение загружается нормально. Но когда я пытаюсь перейти на любую другую страницу, кроме индекса. 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;"]
Ingress.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: /
nginx .conf
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;
}
}