Nginx Proxy Manager 是一个反向代理管理系统,它基于 Nginx,具有以下特点和功能:

  • 特点:拥有基于 Tabler 的美观且安全的管理界面;作为预构建的 Docker 镜像提供,使部署更轻松;无需对 Nginx 或 Let's Encrypt 有深入了解。

  • 功能:可以轻松设置反向代理;能够轻松配置 HTTPS;提供简单的访问权限设置;支持多用户,可配置其他用户查看或管理他们自己的主机,并具备完全访问权限;还支持审计各个用户的操作行为。此外,它内置 Let's Encrypt 支持,允许免费为 Web 服务设置 SSL,证书甚至可以自动续订。它也支持群晖、HomeAssistant、Proxmox LXC 等多种集成方式。

docker安装可视化Portainer面板


mkdir -p portainer_data

chmod 777 portainer_data

docker run -d \
 -p 8000:8000 \
 -p 9443:9443 \
 --name portainer \
 --restart=always \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v portainer_data:/data \
 portainer/portainer-ce:latest

在portainer中新建Stack

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # 重要:确保防火墙已打开对应端口,并且主机拥有公网IP!
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port 如果是家庭宽带,可改为8080:80
      - '443:443' # Public HTTPS Port 如果是家庭宽带,可改为444:443
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      # Mysql/Maria connection parameters:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
      MARIADB_AUTO_UPGRADE: '1'
    volumes:
      - ./mysql:/var/lib/mysql

http://ip:81进入

默认管理员账号密码

Email: admin@example.com
Password: changeme