由于内网环境下安装了多种不同的WEB服务,为了方便公网使用域名访问和支持HTTPS,常见的做法是在内网搭建一个Nginx服务进行,然后进行反向代理,从而实现服务集中、域名访问和SSL证书部署。

但是手动配置Nginx可能会有些麻烦,容易出错,而且对于新手来说不太友好。不过有了Nginx Proxy Manager,这个问题可以很轻松地解决。

关于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安装Nginx Proxy Manager

首先请确保您已经安装Docker-Compose,然后创建一个目录,用来保存Nginx Proxy Manager数据:

# 创建一个目录
mkdir nginx
# 进入这个目录
cd nginx

在刚刚创建的目录下新建一个文件,命名为docker-compose.yaml,然后复制下面的内容进行保存。

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '880:80'
      - '81:81'
      - '8443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  • 880是nginx的HTTP端口,您可以根据自身情况修改
  • 8443是nginx的HTTPS端口,您可以根据自身情况修改
  • 81是Nginx Proxy Manager管理界面端口

然后使用命令docker-compose up -d启动Nginx Proxy Manager,启动成功后输入http://IP:81打开Nginx Proxy Manager可视化(WEB)界面。

首次使用会要求修改邮箱、密码等信息,请根据提示自行完成修改。

添加反向代理

打开导航栏的“Hosts - Proxy Hosts - Add Proxy Host”,输入您的域名以及反代目标协议 + 目标IP + 目标端口,然后点SAVE保存。

再将您的域名解析到Nginx Proxy Manager所在服务器IP,这样就可以通过http://你的域名:880进行访问了(​注意:我上面使用的HTTP端口是880​)

部署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界面的加持都能提高不少效率。

Nginx Proxy Manager官网:https://nginxproxymanager.com/
END
cc
最后修改:2024 年 07 月 10 日
如果觉得我的文章对你有用,请随意赞赏