Docker中部署Nginx Proxy Manager (NPM) 实现反向代理

在当今数字化时代,个人云存储与服务托管变得日益普遍,网络附加存储(NAS)设备也逐渐成为家庭和小型企业不可或缺的一部分。为了更便捷地从外部网络访问内部部署的各种服务和容器应用,使用反向代理技术成为了一种高效解决方案。本文将示例如何在Docker环境下部署Nginx Proxy Manager(NPM),以实现对外网轻松访问NAS上的容器服务,如Docker应用。

为什么选择Nginx Proxy Manager?

Nginx Proxy Manager是一个基于Nginx的图形化反向代理管理工具,它提供了直观的Web界面,使得配置和管理反向代理、SSL证书以及路由规则变得异常简单。特别是对于不具备深厚网络配置知识的用户,NPM提供了一个低门槛的解决方案。

准备工作

环境要求

  • 运行Docker的NAS设备:确保你的NAS支持并已安装Docker。

  • 爱快云或直接Docker操作权限:部分步骤可能涉及云平台管理,但基础操作直接在Docker层面完成即可。

步骤概览

  1. 配置Docker数据持久化路径

  2. 拉取Nginx Proxy Manager镜像

  3. 启动NPM容器

  4. 访问NPM Web界面并配置反向代理

  5. 测试访问

具体步骤

1. 配置Docker数据持久化路径

首先,你需要在NAS上为NPM的数据持久化做准备。这通常涉及到创建存放证书和配置文件的目录,例如:

mkdir -p /opt/docker/npm/letsencrypt
mkdir -p /opt/docker/npm/data

这将创建用于存储Let's Encrypt证书和NPM数据的目录。

2. 拉取Nginx Proxy Manager镜像

打开终端或命令行界面,执行以下命令以拉取NPM的最新版本镜像(注意使用中文镜像chishin/nginx-proxy-manager-zh):

docker pull chishin/nginx-proxy-manager-zh:latest

3. 启动NPM容器

使用以下命令启动NPM容器,确保将数据卷映射到之前创建的目录,并暴露必要的端口:

docker run -d \
  --name npm \
  -p 8443:8443 \
  -p 8081:8081 \
  -p 8181:8181 \
  -v /opt/docker/npm/letsencrypt:/etc/letsencrypt \
  -v /opt/docker/npm/data:/data \
  chishin/nginx-proxy-manager-zh:latest

此命令会将NPM容器内的8443、8081和8181端口分别映射到宿主机的相同端口,并挂载数据卷。

4. 访问NPM Web界面并配置反向代理

  • 使用浏览器访问NAS的IP地址加上端口8181,例如:http://your_nas_ip:8181

  • 登录NPM管理界面,默认邮箱为[email protected],默认密码为changeme。首次登录后,请立即更改管理员账户密码。

  • 在NPM界面,你可以开始添加代理主机,为每个需要通过NPM访问的服务配置相应的域名、目标容器的IP和端口,以及SSL证书等。

5. 测试访问

配置完成后,尝试从外网访问你所设置的域名,你应该能够无端口地直接访问到NAS上的服务,比如通过http://yourdomain.comhttps://yourdomain.com

总结

通过Docker部署Nginx Proxy Manager,不仅可以简化NAS上各种服务的外网访问配置,还能有效提升安全性,特别是结合自动化的SSL证书管理。随着配置的逐步完善,你将享受到一个既安全又高效的个人云服务平台,无论是用于个人项目还是团队协作,都能提供极大的便利性。

Comments