Published on

「推荐」 Nginx Proxy Manager

Authors
  • avatar
    作者
    老麦

前言

Nginx 管理神器,很早之前就听说这个项目,但一直没有去试用。最近在 CloudCone 上购买了一个新的 VPS,这次搬家不想再次困在宝塔面板上,哪怕宝塔面板用起来真的很省心。新的 VPS 计划用 Docker 来管理手上的项目,毕竟容器化方便对项目的迁移,至于损耗的那一点点性能就忽略不计了。

安装

  1. 在 docker 目录下新建一个 nginxproxymanager 目录用于存放相关的数据;
  2. 在 nginxproxymanager 目录下新建一个 docker-compose.yml 文件;

相关操作:

# 新建目录
mkdir -p ~/docker/nginxproxymanager && cd ~/docker/nginxproxymanager
# 新建docker-compose.yml
vim 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:
      - ~/docker/data/nginxproxymanager/data:/data
      - ~/docker/data/nginxproxymanager/letsencrypt:/etc/letsencrypt

这里绑定目录我是保持着个人习惯的,详细说明可参照:使用 Docker 来部署 Wordpress

# 运行
docker compose up -d

使用

虽然界面全英文,但是使用起来一点都不难,很是直观,以下记录几个自己踩过的坑。

  • Forward Hostname / IP 如果是代理 Docker 里的容器时,这一栏选择 Docker 的内网 IP 比较适合,查看 Docker 的内网 IP 可以使用 ip addr | grep docker 这个命令;
  • Redirection Hosts 在 Hosts 菜单上可以选择,用作重定向。因为习惯了宝塔的操作模式,以为重定向也是只需在 Proxy Hosts 上设置就行,Nginx Proxy Manager 则需要单独设置;
  • Access Lists 可以给 Hosts 加一道防线,但实际使用中发现,如果你的页面需要登陆的话,再添加一个 Access Lists 的话就会出现一个 Bug,无法正确打开,希望以后的版本可以修复此功能;
  • Data 存放 Nginx Proxy Manager 这个容器的数据,在 data 目录上新建一个目录用作存放静态博客的话,Forward Hostname / IP 这一栏选择填入 127.0.0.1,端口选择根据 Scheme 来选择 80/443 即可。在 Advanced 这里设置相应的目录,⚠️ 注意的是该目录只能存在于 data 目录下。示例如下:
    location / {
    root /data/test.iamlm.com;
    }
    
  • SSL Certificates Nginx Proxy Managegr 上申请证书真的很方便,可以申请泛域名(打开 DNS Challange 即可选择相应的托管进行设置),也可以下载证书,创建时绑定的 letsencrypt 目录就是保存证书文件的;

资料