nginx-proxy-manager介绍

nginx-proxy-manager 是一个NGINX反向代理管理系统,相当于在 Web 界面上进行可视化配置Nginx。还可以获得受信任的 SSL 证书,并通过单独的配置、自定义和入侵保护来管理多个代理。

Nginx可视化管理界面:nginx-proxy-manager - 图1

这个项目是为了满足个人需求,为用户提供一种简单的方法来完成反向 使用SSL终止代理主机,它必须非常简单,以至于猴子可以做到这一点。这个目标没有改变。 虽然可能有高级选项,但它们是可选的,项目应该尽可能简单 这样这里的进入门槛就低了。

特征

  • 基于Tabler的美观安全的管理界面
  • 轻松创建转发域、重定向、流和 404 主机,而无需了解 Nginx
  • 使用Let’s Encrypt或提供您自己的自定义SSL证书的免费SSL
  • 主机的访问列表和基本 HTTP 身份验证
  • 高级 Nginx 配置可供超级用户使用
  • 用户管理、权限和审核日志

快速安装

安装 Docker 和 Docker-Compose

  1. Docker安装
  2. Docker-Compose 安装
  3. 创建一个类似于下面的 docker-compose.yml 文件:
  1. version: '3'
  2. services:
  3. app:
  4. image: 'jc21/nginx-proxy-manager:latest'
  5. restart: unless-stopped
  6. ports:
  7. - '80:80'
  8. - '81:81'
  9. - '443:443'
  10. volumes:
  11. - ./data:/data
  12. - ./letsencrypt:/etc/letsencrypt
  1. 通过运行以下命令来启动
  1. docker-compose up -d
  2. # If using docker-compose-plugin
  3. docker compose up -d
  1. 登录到管理界面

当您的 docker 容器运行时,在管理界面的端口上连接到它。 有时,由于密钥的原因,这可能需要一点时间。

默认管理员用户信息:

  • Email: admin@example.com
  • Password: changeme

使用此默认用户登录后,系统会立即要求您修改您的详细信息并更改密码。

完整设置说明

运行应用

创建一个文件:docker-compose.yml

  1. version: "3"
  2. services:
  3. app:
  4. image: 'jc21/nginx-proxy-manager:latest'
  5. restart: unless-stopped
  6. ports:
  7. # These ports are in format <host-port>:<container-port>
  8. - '80:80' # Public HTTP Port
  9. - '443:443' # Public HTTPS Port
  10. - '81:81' # Admin Web Port
  11. # Add any other Stream port you want to expose
  12. # - '21:21' # FTP
  13. # Uncomment the next line if you uncomment anything in the section
  14. # environment:
  15. # Uncomment this if you want to change the location of
  16. # the SQLite DB file within the container
  17. # DB_SQLITE_FILE: "/data/database.sqlite"
  18. # Uncomment this if IPv6 is not enabled on your host
  19. # DISABLE_IPV6: 'true'
  20. volumes:
  21. - ./data:/data
  22. - ./letsencrypt:/etc/letsencrypt

然后执行命令:docker-compose up -d

使用 MySQL / MariaDB 数据库

如果您选择 MySQL 配置,则必须自己提供数据库服务器。您也可以使用 MariaDB。以下是支持的最低版本:

  • MySQL v5.7.8+
  • MariaDB v10.2.7+

也可以轻松地为您的数据库使用另一个 docker 容器并将其链接为 docker 堆栈的一部分,因此这就是以下示例 将使用。

以下是使用 MariaDB 容器时的外观示例:docker-compose.yml

  1. version: "3"
  2. services:
  3. app:
  4. image: 'jc21/nginx-proxy-manager:latest'
  5. restart: unless-stopped
  6. ports:
  7. # These ports are in format <host-port>:<container-port>
  8. - '80:80' # Public HTTP Port
  9. - '443:443' # Public HTTPS Port
  10. - '81:81' # Admin Web Port
  11. # Add any other Stream port you want to expose
  12. # - '21:21' # FTP
  13. environment:
  14. DB_MYSQL_HOST: "db"
  15. DB_MYSQL_PORT: 3306
  16. DB_MYSQL_USER: "npm"
  17. DB_MYSQL_PASSWORD: "npm"
  18. DB_MYSQL_NAME: "npm"
  19. # Uncomment this if IPv6 is not enabled on your host
  20. # DISABLE_IPV6: 'true'
  21. volumes:
  22. - ./data:/data
  23. - ./letsencrypt:/etc/letsencrypt
  24. depends_on:
  25. - db
  26. db:
  27. image: 'jc21/mariadb-aria:latest'
  28. restart: unless-stopped
  29. environment:
  30. MYSQL_ROOT_PASSWORD: 'npm'
  31. MYSQL_DATABASE: 'npm'
  32. MYSQL_USER: 'npm'
  33. MYSQL_PASSWORD: 'npm'
  34. volumes:
  35. - ./data/mysql:/var/lib/mysql

注意 请注意,环境变量将优先于变量。因此,如果您保留MySQL变量,您将无法使用SQLite。DBMYSQLDBSQLITE

自定义Nginx配置

如果你是一个更高级的用户,你可能会渴望额外的Nginx可定制性。

NPM 能够在不同位置包含不同的自定义配置片段。

您可以在以下位置添加自定义配置代码段文件:/data/nginx/custom

  • /data/nginx/custom/root.conf:包含在nginx.conf的最后
  • /data/nginx/custom/http_top.conf:包含在主 http 块的顶部
  • /data/nginx/custom/http.conf:包含在主 http 块的末尾
  • /data/nginx/custom/events.conf:包含在事件块的末尾
  • /data/nginx/custom/stream.conf:包含在主流块的末尾
  • /data/nginx/custom/server_proxy.conf:包含在每个代理服务器块的末尾
  • /data/nginx/custom/server_redirect.conf:包含在每个重定向服务器块的末尾
  • /data/nginx/custom/server_stream.conf:包含在每个流服务器块的末尾
  • /data/nginx/custom/server_stream_tcp.conf:包含在每个 TCP 流服务器块的末尾
  • /data/nginx/custom/server_stream_udp.conf:包含在每个 UDP 流服务器块的末尾

每个文件都是可选的。

X_FRAME_OPTIONS 配置

您可以配置X-FRAME-OPTIONS页眉 值,将其指定为 Docker 环境变量。如果未指定,则缺省值为 deny

  1. ...
  2. environment:
  3. X_FRAME_OPTIONS: "sameorigin"
  4. ...

升级

  1. docker-compose pull
  2. docker-compose up -d

此项目将自动更新任何数据库或其他要求,因此您不必遵循 任何疯狂的指示。上面的这些步骤将提取最新更新并重新创建 docker。

web管理界面

用户登录界面

登录

自定义配置

Nginx可视化管理界面:nginx-proxy-manager - 图3

添加配置

Nginx可视化管理界面:nginx-proxy-manager - 图4 Nginx可视化管理界面:nginx-proxy-manager - 图5

看板

Nginx可视化管理界面:nginx-proxy-manager - 图6

定义404主机

Nginx可视化管理界面:nginx-proxy-manager - 图7

权限配置

Nginx可视化管理界面:nginx-proxy-manager - 图8