我在名为 的 Windows 共享上有一组文件\\winserver\bucket
。
在 CentOS 服务器上,我可以将其挂载,以便可以查看内容。我创建了一个名为/mnt/bucket
for 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有关于如何设置共享权限的说明。