apache「選項索引」在本機上工作,但不使用公共 DNS 名稱

apache「選項索引」在本機上工作,但不使用公共 DNS 名稱

我有一個 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 會以這種方式運作。

相關內容