共计 2378 个字符,预计需要花费 6 分钟才能阅读完成。
Nginx proxy manager 是一个很简单的反向代理工具。
官网:https://nginxproxymanager.com/
门槛极低,操作简单,不需要你掌握很复杂的 Nginx 配置知识,只需要几步就能很轻松完成反向代理的设置和 SSL 证书的部署。
关于Nginx Proxy Manager
Nginx Proxy Manager是一个基于Docker的轻量级、高性能的Web代理(同时也包括反向代理)和电子邮件代理。它具有用户友好的界面,可以很容易地创建和管理Nginx代理主机。
他的特点包括:
- 简易的用户界面:对于不熟悉Nginx配置文件的用户来说,Nginx Proxy Manager提供了一个直观的界面,可以轻松地创建和管理Nginx代理主机。
- SSL支持:Nginx Proxy Manager支持Let's Encrypt,可以自动获取和续订SSL证书,保证通信的安全性。
- 支持Websockets:Nginx Proxy Manager完全支持Websockets,这是许多现代Web应用所需要的。
- 访问控制:可以对访问进行控制,例如,可以设置基本的HTTP认证,或者根据IP地址进行限制。
- 支持HTTP/2:Nginx Proxy Manager支持HTTP/2,可以提供更高的传输效率。
- 自定义Nginx配置:尽管Nginx Proxy Manager已经为大部分用途提供了默认的配置,但如果需要,还可以提供自定义Nginx配置。
- Docker支持:Nginx Proxy Manager是基于Docker的,这意味着你可以在任何支持Docker的平台上运行它。
- 100%免费和开源:Nginx Proxy Manager是开源的,可以自由使用和修改。
总的来说,Nginx Proxy Manager是一个强大的工具,使得管理Nginx反向代理变得更加简单,尤其适合不熟悉Nginx配置文件的用户使用。
目录下新建一个文件,命名为docker-compose.yml,然后复制下面的内容进行保存。
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
80是nginx的HTTP端口,您可以根据自身情况修改
443是nginx的HTTPS端口,您可以根据自身情况修改
81是Nginx Proxy Manager管理界面端口
然后使用命令docker-compose up -d启动Nginx Proxy Manager,启动成功后输入http://IP:81打开Nginx Proxy Manager可视化(WEB)界面。
- 认用户名为:
admin@example.com - 默认密码为:
changeme
首次使用会要求修改邮箱、密码等信息,请根据提示自行完成修改。
添加反向代理
打开导航栏的“Hosts - Proxy Hosts - Add Proxy Host”,输入您的域名以及反代目标协议 + 目标IP + 目标端口,然后点SAVE保存

再将您的域名解析到Nginx Proxy Manager所在服务器IP,这样就可以通过http://你的域名进行访问了.
部署SSL证书
Nginx Proxy Manager默认有提供“Let's Encrypt” SSL证书,但实测国内因为X墙的原因,可能用不了。不过没关系,Nginx Proxy Manager也支持添加自己申请的SSL证书。
打开导航栏的“SSL Certificates - Add SSL Certificate - Custom”

根据指示,填写SSL证书名称,和选择私钥文件和证书文件,然后点SAVE进行保存。

回到“Proxy Hosts”中,找到您之前添加的域名,然后进行修改。切换到“SSL”选项栏,选择刚刚添加的自定义SSL证书,然后点保存就行了。

部署完毕后,我们再次访问需要加上https协议,如果使用的非标准端口(443),还需要加上端口进行访问,比如:https://你的域名:8443
升级Nginx Proxy Manager
由于使用的Docker-Compose部署,如果您需要升级Nginx Proxy Manager版本,也非常简单,只需要执行下面的命令就行了:
# 拉取新的镜像
docker-compose pull
# 重新启动Nginx Proxy Manager
docker-compose up -d
其它
除了上面介绍的基本功能外,Nginx Proxy Manager还支持一些其它功能。比如:
- 自定义反向代理的配置,可满足一些复杂的反向代理需求
- 支持Basic密码验证
- 支持IP访问限制
- 支持Strem端口转发
这些都可以直接通过WEB界面完成,非常方便,大家有兴趣可以自行研究。
结语
Nginx Proxy Manager非常适合NAS用户使用,有了Nginx Proxy Manager使得Nginx反向代理配置更加简单,不论是新手还是老司机有了WEB界面的加持都能提高不少效率。
如果需要反代Cloudfare的cdn域名,需要在advanced加入以下配置
location /
{
proxy_pass https://XXXX;
proxy_set_header Host XXXX;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_ssl_name XXXX;
proxy_ssl_server_name on;
}