
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에서 왜 이런 방식으로 작동하는지 아직 잘 모르겠습니다.