Apache „Options Indexes“ funktioniert mit localhost, aber nicht mit öffentlichem DNS-Namen

Apache „Options Indexes“ funktioniert mit localhost, aber nicht mit öffentlichem DNS-Namen

Ich habe einen Kubernetes-Cluster und einen sehr einfachen Container. Ich versuche, über das Internet darauf zuzugreifen, und die Aufgabe ist sehr einfach: Ich muss nur den Index des Verzeichnisses auflisten. Hier ist meine grundlegende virtuelle Hostkonfiguration:

<VirtualHost *:80>
 Alias /docs /mnt/nfs
 <Directory /mnt/nfs>
  DAV Off
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Require all granted
 </Directory>
</VirtualHost>

Wenn ich den Dienst oder die Pods mit der Portweiterleitungsoption von Kubectl verwende, funktioniert es wie erwartet und meine Dateien werden unter xyz.com/docs aufgelistet. Wenn ich jedoch versuche, über meinen FQDN per Ingress auf den Pod zuzugreifen, erhalte ich einen 404-Fehler. Wenn ich auf eine Datei test.txt zugreife, die sich im Ordner befindet, kann ich den Inhalt der Datei sehen, aber die Indizes werden nicht aufgelistet, wie es mit der Portweiterleitungsoption funktioniert. Kurz gesagt, ich kann den Pod erreichen und auf die Dateien zugreifen, kann sie aber nicht mit dem Autoindex-Modul auflisten, und mit demselben Pod kann ich den Index mit der Portweiterleitungsoption von Kubectl auflisten

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

Für jede Hilfe wäre ich sehr dankbar.

Danke,

Antwort1

Okay, die Lösung für mich war ein Workaround. Mir ist aufgefallen, dass auf den Ordner „webroot“ (/var/www/html) auf dieselbe Weise zugegriffen werden konnte, wie ich auf den Ordner WebDAV zugreifen wollte (z. B. xyz.com/doc). Also habe ich einen Symlink im Stammordner als /var/www/html/doc erstellt, und der Doc-Symlink zeigt auf den erforderlichen Doc-Ordner. Die Option FollowSymLinks ist in der Konfiguration auch aktiviert, sodass es für mich funktioniert hat.

Ich bin mir jedoch immer noch nicht sicher, warum es mit FQDN so funktioniert.

verwandte Informationen