我有一个 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 通过入口访问 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
任何帮助将不胜感激。
谢谢,
好的,对我来说解决方案是一种解决方法。我注意到可以像访问 WebDAV 文件夹(例如,xyz.com/doc)一样访问“webroot”文件夹(/var/www/html)。因此,我在根文件夹中创建了一个符号链接作为 /var/www/html/doc,并且 doc 符号链接指向所需的 doc 文件夹。配置中还启用了 FollowSymLinks 选项,这使它可以为我工作。
但是,我仍然不确定为什么它以这种方式与 FQDN 一起工作。