用Nginx搭建端口隔离的离线文档预览服务器,通过多个server块监听不同端口并映射独立root目录,支持PDF/HTML等静态文件直览,需预编译Markdown为HTML,配合autoindex、安全限制与gzip优化,最后重载配置验证生效。

用 Nginx 搭建基于端口的离线文档预览服务器,核心是绕过域名绑定,直接通过不同端口映射到不同本地文档目录,并让 Nginx 正确处理静态文件(如 HTML、PDF、Markdown 渲染页等)的请求。它不依赖后端服务,纯静态托管,适合内网快速共享技术文档、API 手册或项目说明。
配置多个 server 块监听不同端口
Nginx 本身不叫“虚拟主机”在端口模式下,但可通过多个 server 块 + 不同 listen 端口实现逻辑隔离。每个端口对应一个独立文档根目录:
- 编辑
/etc/nginx/nginx.conf或在/etc/nginx/conf.d/下新建配置文件(如docs-8081.conf) - 每个
server块写明唯一端口(如listen 8081;),并指定root路径(如/var/www/docs/api-v1) - 确保端口未被占用,且防火墙放行(如
sudo ufw allow 8081)
支持常见文档格式的静态服务
纯 Nginx 只能直接返回静态文件。要预览 PDF、HTML、文本等,需注意以下几点:
-
PDF 文件:浏览器可原生打开,确保 MIME 类型正确(Nginx 默认已包含
application/pdf) -
HTML 文档:放入目录后,访问
http://localhost:8081/index.html即可;建议设index index.html; -
Markdown 文件:Nginx 不解析 Markdown,需提前转成 HTML(用
markdown-it-cli、pandoc或mkdocs build),再托管生成的site/目录 -
目录列表:若想自动显示文件列表(如访问
/时列出所有 .md/.pdf),开启autoindex on;并配好autoindex_exact_size off;和autoindex_format html;
安全与实用增强项
离线环境也需基础防护和易用性优化:
- 禁用服务器标识:
server_tokens off;防止暴露 Nginx 版本 - 限制敏感路径:用
location ~ /\.(ht|git|svn|json)$ { deny all; }拒绝访问配置或源码文件 - 启用 gzip 压缩:
gzip on;+ 相关指令,加快大文档(如 API HTML)加载 - 添加跨域头(如需前端 JS 加载):
add_header 'Access-Control-Allow-Origin' '*';(仅限可信内网)
启动与验证流程
配置完成后别忘了重载服务并检查实际效果:
- 运行
sudo nginx -t验证语法 - 执行
sudo systemctl reload nginx生效新配置 - 用
curl -I http://localhost:8081/查看响应头是否含200 OK和正确Content-Type - 浏览器访问
http://localhost:8081/sample.pdf或http://localhost:8081/测试目录索引

















