前言

由于低版本的宝塔面板存在漏洞,高版本需要绑定手机,且占用较高,加上自己的服务大多是 Docker 部署,因此直接使用反向代理的面板更加方便。 Nginx Proxy Manager 是一个 Nginx 的代理管理器,简单方便,并且支持一键申请证书、自动续期。 项目地址如下:nginx-proxy-manager

部署

使用 Docker 部署,命令如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
mkdir /opt/npm && cd /opt/npm && cat << EOF > docker-compose.yml
version: '3.8'
services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
EOF
docker compose up -d

安装完成后可以使用 http://IP:81 访问后台,默认的用户名密码如下:

1
2
Email:    admin@example.com
Password: changeme

修改后即可正常使用,建议给后台地址反向代理。

反向代理

添加网站

主界面点击 Proxy Host- Add Proxy Host proxy-host

三个选项可以自己选择是否开启

  • Cache Assets: 缓存
  • Block Common Exploits: 屏蔽常见漏洞
  • Websockets Support: Websockets 支持

Forward Hostname / IP 处填写反向代理的网站,如果服务部署在本机,可以使用如下命令获取 docker 的网络接口的 IP,一般为 172.17.0.1

1
ip addr show docker0

申请证书

依次点击 SSL Certificates-Add SSL Cerfificate-Let's Encrypt,填写域名,点击 Use a DNS Challenge 填写对应域名商的 API sslCloudflare为例,申请一个自定义令牌,依次点击创建令牌-编辑区域DNS-使用模板,区域资源处选择对应的资源,可以选定所有区域,然后选择账号,最后点击继续以显示摘要-创建令牌,完成后只显示一次,注意保存。 将创建的令牌填写到对应的位置

1
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567

完成后反向代理的网站就可以在 SSL 选项卡选择对应的证书。

添加静态网站

  1. /data 下建立对应的网站路径
  2. 将静态文件保存到里面
  3. 添加反向代理,代理的地址填写服务器地址
  4. 在 Advanced 设置中添加下面的设置,将其中的 domain.com 换成自己的域名即可
1
2
3
location / {
  root /data/domain.com;
}

参考