CentOS - 通过 nginx 提供 Samba 共享

CentOS - 通过 nginx 提供 Samba 共享

我在名为 的 Windows 共享上有一组文件\\winserver\bucket

在 CentOS 服务器上,我可以将其挂载,以便可以查看内容。我创建了一个名为/mnt/bucketfor mount 的空目录。

sudo mount -t cifs -o credentials=/root/bucket.ini \\\\winserver\\bucket /mnt/bucket

Windows 凭据存储在一个相对安全的文件中( ),我计划在某个时候/root/bucket.ini放入 mount 指令。/etc/fstab

CentOS 服务器正在运行nginx,并且我需要能够通过 http 链接提供共享中的文件(仅供下载)。

举例来说,某人点击名为“应该”的浏览器链接,http://CentOSname/bucket/item/gizmo.pdf就会收到\\winserver\bucket\item\gizmo.pdf一个下载的文件。

  • 实现这一目标的最佳方法是什么?
  • nginx 用户帐户是否需要获取适当的权限才能访问文件?
  • 用于挂载 Windows 卷的参数是否适合将其共享给 nginx?

- - 编辑 - -

Tero 的回答对我来说不起作用。

我向 nginx.conf添加了location和参数,但出现 403 Forbidden 错误:root

server {
    listen       80;
    listen       [::]:80;
    server_name  _;
    root         /usr/share/nginx/html;

    location /bucket/ {
       root /mnt/bucket;
    }

添加autoindex on查看目录内容产生了同样的错误。

答案1

nginx 可以为任何路径上可用的任何文件提供服务。因此,您需要做的就是像之前一样挂载共享,然后使用指令将 nginx 配置为从该目录提供文件root

您还需要确保设置了共享权限,以便 nginx 用户可以访问这些文件。https://unix.stackexchange.com/questions/68079/mount-cifs-network-drive-write-permissions-and-chown有关于如何设置共享权限的说明。

相关内容