挑选Web服务器软件,优先看网站程序的开发语言。PHP、Python、Node.js这类程序,Linux系统首选Nginx,并发承载能力强,静态文件吞吐效率高,配置文件简洁。Apache发展时间久,模块丰富,支持.htaccess,虚拟主机、WordPress站点使用广泛。Caddy近几年使用人群变多,最大优势自动申请、续期HTTPS证书,填入域名自动完成配置,操作省事。Windows系统部署ASP.NET,IIS最合适,图形界面点击操作就能搭建站点。Lighttpd和OpenLiteSpeed相对小众,低配服务器跑静态网站有优势,但配套文档和生态不如前面三款。

不想操作命令行,安装管理面板更简单。宝塔面板和aaPanel都是图形化操作,建站、绑定域名、创建数据库、配置SSL全部鼠标操作,底层依旧运行Nginx或者Apache。XAMPP、WampServer、MAMP这类集成包适合本地开发测试,安装完成直接运行,不建议部署到公网生产环境,安全和性能没有优化。
文件服务器和网站服务器不是同一类东西。网站服务器运行业务程序,文件服务器用来浏览目录、下载文件。搭建流程比建站简单,但是要做好权限控制,限定对外开放范围。
使用Nginx搭建文件服务器操作不难。服务器安装Nginx,Ubuntu执行apt install nginx。新建存放文件目录,例如/var/www/files,把需要共享的文件放入目录。修改Nginx配置,在/etc/nginx/sites-available/新建配置文件,写入server块,listen 80,server_name填写域名或者IP,root指向刚才创建的目录。核心配置行autoindex on;开启之后浏览器才能展示文件列表。想要展示文件大小、修改时间,补充autoindex_exact_size off;和autoindex_localtime on;。保存配置执行nginx -t校验语法,无报错执行systemctl reload nginx重载配置。云平台安全组放行80端口,浏览器访问IP或者域名,就能看到文件列表。
权限设置不能大意。Nginx默认使用www-data用户运行,目录和文件属主、权限要保证该用户可读。执行chown -R www-data:www-data /var/www/files,目录权限755,文件权限644,不要直接设置777图方便。只允许指定人员访问,可以在Nginx配置添加auth_basic和密码文件,htpasswd生成账号,访问页面弹出登录验证。
临时使用可以用Python自带简易HTTP服务。进入文件存放目录,运行python3 -m http.server 8000,浏览器访问IP:8000查看文件列表。操作简单,但只能临时使用,关闭进程服务停止,无法配置权限和HTTPS。
想要更美观的文件管理界面,选用Filebrowser。它是单文件Go程序,下载之后直接启动,浏览器端支持上传、下载、重命名、新建用户、分配权限,比Nginx自带的目录展示更好用。部署完成配置systemd实现后台常驻,反向代理挂在Nginx后面启用HTTPS,就能搭建稳定私有文件服务器。
不管选用哪种方案,几点事项需要留意。文件服务器不要存放敏感资料,公网开放的资源很容易被爬虫扫描。大文件下载,直接走HTTP不如对象存储搭配CDN,服务器带宽扛不住多人同时下载。日志需要定期查看,Nginx访问日志路径/var/log/nginx/access.log,记录访问者、访问时间、下载文件信息。