gpt4 book ai didi

nginx - Kubernetes Ingress Nginx 加载资源 404

转载 作者:行者123 更新时间:2023-12-01 23:10:59 25 4
gpt4 key购买 nike

我们正在尝试让我们的网站在 kubernetes 上运行(使用 nginx 在容器中运行)。我们使用 ingress 路由到站点,这是我们的配置:

nginx-conf:

server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
}

Kubernetes 部署:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mywebsite
spec:
replicas: 2
template:
metadata:
labels:
app: mywebsite
spec:
containers:
- name: mywebsite
image: containerurl/xxx/mywebsite:latest
ports:
- containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
name: mywebsite
spec:
ports:
- port: 82
targetPort: 80

selector:
app: mywebsite

入口配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myIngress
annotations:
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- xxx.com
secretName: tls-secret
rules:
- host: xxx.com
http:
paths:
- path: /mywebsite
backend:
serviceName: mywebsite
servicePort: 82

当我访问 xxx.com/mywebiste 时,index.html 正在加载,但 css 和 js 未加载(404):

index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My Website</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link href="/styles.30457fcf45ea2da7cf6a.css" rel="stylesheet"></head>
<body>
<div id="react-root"></div>
<script type="text/javascript" src="/app.171d6a95cf24d8abab14.js"></script></body>
</html>

...因为它尝试获取此处的资源,作为 css 的示例:

xxx.com/styles.30457fcf45ea2da7cf6a.css

...而不是:

xxx.com/mywebsite/styles.30457fcf45ea2da7cf6a.css

如果尝试不同的事情,例如:

nginx.ingress.kubernetes.io/add-base-url
nginx.ingress.kubernetes.io/app-root

...等等,但似乎没有任何作用。

有什么想法吗?感谢您的帮助。

问候,彼得

最佳答案

这不是 nginx 部分的路由问题,而是浏览器尝试从域的根访问绝对 URI。使用相对 URI(删除前导斜杠):

<link href="styles.30457fcf45ea2da7cf6a.css" rel="stylesheet"></head>
<script type="text/javascript" src="app.171d6a95cf24d8abab14.js"></script></body>

关于nginx - Kubernetes Ingress Nginx 加载资源 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50871970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com