1. 为什么需要反向代理?
在局域网环境中,我们经常需要访问各种本地服务,比如NAS管理界面、自建Git服务器、家庭媒体中心等。传统方式是直接输入IP地址加端口号(如192.168.1.100:8080),这种方式存在几个明显问题:
- 记忆困难:不同服务的IP和端口组合难以记忆
- 安全性低:暴露端口号可能带来安全隐患
- 缺乏统一入口:每个服务都需要单独访问
- 无法使用HTTPS:直接IP访问难以配置SSL证书
反向代理(Reverse Proxy)技术正是解决这些痛点的理想方案。它充当客户端和后端服务器之间的中介,对外提供统一的访问入口,对内根据规则将请求转发到不同的服务。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Nginx Proxy Manager 简介
Nginx Proxy Manager(简称NPM)是一个基于Nginx的图形化管理工具,相比直接配置Nginx,它具有以下优势:
- 可视化操作:无需编写复杂的nginx.conf文件
- 证书管理:内置Let's Encrypt自动证书申请和续期
- 访问控制:支持基础认证和IP限制
- 性能优异:基于Nginx的高性能代理引擎
2.1 为什么选择Docker部署?
使用Docker部署NPM有三大好处:
- 环境隔离:所有依赖都打包在容器内,不会污染主机环境
- 一键迁移:配置和数据通过卷(volume)持久化,迁移时只需复制几个文件
- 版本控制:可以方便地切换或升级NPM版本
3. 部署准备
3.1 硬件和软件需求
- 一台运行Linux的服务器(物理机或虚拟机)
- 已安装Docker和Docker Compose
- 80、443、81端口未被占用
- 本地网络环境(建议使用有线连接保证稳定性)
提示:检查端口占用可以使用命令
netstat -tuln | grep -E '80|443|81'
3.2 目录结构规划
建议按以下结构组织文件:
code复制~/nginx-proxy-manager/
├── docker-compose.yml
├── data/ # NPM配置数据
└── letsencrypt/ # SSL证书
