[英]Kubernetes Ingress Nginx loading resources 404
海蘭
我們正試圖讓我們的網站處理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
Ingress配置:
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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.