Apache "옵션 인덱스"는 localhost에서 작동하지만 공용 DNS 이름에서는 작동하지 않습니다.

Apache "옵션 인덱스"는 localhost에서 작동하지만 공용 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 포트 전달 옵션과 함께 서비스 또는 포드를 사용하면 예상대로 작동하고 내 파일이 xyz.com/docs에 나열됩니다. 그러나 FQDN을 통해 수신을 통해 포드에 액세스하려고 하면 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

좋아, 나에게 해결책은 해결 방법이었습니다. WebDAV 폴더(예: xyz.com/doc)에 액세스하려는 것과 동일한 방식으로 "webroot" 폴더(/var/www/html)에 액세스할 수 있다는 것을 알았습니다. 그래서 루트 폴더에 /var/www/html/doc라는 심볼릭 링크를 만들었고, 문서 심볼릭 링크는 필요한 문서 폴더를 가리키고 있습니다. FollowSymLinks 옵션도 구성에서 활성화되어 있어 저에게 적합했습니다.

그러나 FQDN에서 왜 이런 방식으로 작동하는지 아직 잘 모르겠습니다.

관련 정보