
我有一個 Kubernetes 叢集和一個非常基本的容器。我試圖透過網路存取它,任務非常簡單,我只需要列出目錄的索引。這是我的基本虛擬主機配置:
<VirtualHost *:80>
Alias /docs /mnt/nfs
<Directory /mnt/nfs>
DAV Off
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
當我使用帶有 kubectl port-forward 選項的服務或 pod 時,它按預期工作,並且我的文件在 xyz.com/docs 中列出。但是,當我嘗試透過 FQDN 透過 ingress 存取 pod 時,出現 404 錯誤。當我訪問資料夾內的 test.txt 檔案時,我可以看到該檔案的內容,但它沒有像使用連接埠轉送選項一樣列出索引。簡而言之,我可以到達 pod 並存取文件,但無法使用 autoindex 模組列出它們,並且使用相同的 pod,我可以使用 kubectl 連接埠轉送選項列出索引
kind: Ingress
metadata:
name: webdav-app
namespace: testing1
annotations:
cert-manager.io/issuer: "letsencrypt-staging"
#cert-manager.io/cluster-issuer: "letsencrypt-prod"
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
tls:
- hosts:
- webdav.xyz.com
secretName: webdav-app-certificate
rules:
- host: webdav.xyz.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: webdav-app
port:
number: 80
任何幫助將不勝感激。
謝謝,
答案1
好吧,對我來說解決方案是一個解決方法。我注意到“webroot”資料夾(/var/www/html)可以按照我想要存取WebDAV資料夾(例如,xyz.com/doc)的相同方式進行存取。因此,我在根資料夾中建立了一個符號連結 /var/www/html/doc,並且 doc 符號連結指向所需的 doc 資料夾。配置中還啟用了 FollowSymLinks 選項,這使得它可以為我工作。
但是,我仍然不確定為什麼 FQDN 會以這種方式運作。