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 通过入口访问 pod 时,它会给我一个 404 错误。当我访问文件夹内的 test.txt 文件时,我可以看到文件的内容,但它没有列出索引,就像使用端口转发选项一样。简而言之,我可以访问 pod 并访问文件,但无法使用自动索引模块列出它们,并且使用同一个 pod,我能够使用 kubectl port-forwarding 选项列出索引

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 一起工作。

相关内容