Nginx 本身并不能直接搭建 NFS (Network File System) 服务器,因为 Nginx 是一个 Web 服务器/反向代理服务器,而 NFS 是 Linux/Unix 系统的文件共享协议。不过您可以通过以下两种方案实现类似功能:
这是标准的NFS服务器搭建方式:
# Ubuntu/Debian
sudo apt update
sudo apt install nfs-kernel-server
# CentOS/RHEL
sudo yum install nfs-utils
sudo mkdir /data/nfs_share
sudo chown nobody:nogroup /data/nfs_share # 设置匿名权限
sudo chmod 777 /data/nfs_share # 测试时可放宽权限
编辑 /etc/exports
文件:
/data/nfs_share *(rw,sync,no_subtree_check,no_root_squash)
(*
表示允许所有IP访问,生产环境请替换为具体客户端IP)
# Ubuntu/Debian
sudo systemctl restart nfs-kernel-server
# CentOS/RHEL
sudo systemctl enable --now nfs-server
在客户端机器执行:
sudo mount -t nfs <服务器IP>:/data/nfs_share /mnt/nfs
如果只是需要简单的文件共享(非NFS协议),可以用Nginx搭建HTTP文件服务器:
server {
listen 80;
server_name fileserver.example.com;
location /downloads {
alias /data/nfs_share;
autoindex on; # 启用目录列表
charset utf-8;
}
}
sudo chown -R www-data:www-data /data/nfs_share
sudo chmod -R 755 /data/nfs_share
sudo systemctl restart nginx
用户可通过 http://fileserver.example.com/downloads
访问文件。
特性 | NFS服务器 | Nginx文件服务器 |
---|---|---|
协议 | NFS(内核级高性能) | HTTP/HTTPS |
适用场景 | Linux系统间共享 | 跨平台文件下载 |
客户端要求 | 需要支持NFS挂载 | 只需浏览器或wget/curl |
权限控制 | 系统用户权限 | 基础HTTP认证 |
如果是Linux系统间共享,强烈建议使用原生NFS服务;如果需要跨平台或互联网访问,再用Nginx方案。