一款非常强大的 Nginx 可视化管理平台

2023-11-16 11:35:29 浏览数 (1)

Nginx 是一个高性能的HTTP和反向代理web服务器,其主要的特点就是快,但是配置起来相对有点麻烦,对于新手朋友来说,很不友好,今天给大家推荐一款可视化的Nginx配置管理工具,开箱即用,支持 Docker 一键部署,可以让用户通过 Web 界面在线配置、管理 Nginx 服务,支持转发、重定向、SSL 证书、高级配置等功能。

开源地址:https://github.com/NginxProxyManager/nginx-proxy-manager

项目目标

为用户提供一种简单的方法来完成带有 SSL 终止的反向代理主机,并且非常简单,虽然可能有高级选项,但它们是可选的,并且项目应尽可能简单,以便进入门槛较低。

特征

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

快速设置

安装 Docker 和 Docker-Compose

创建一个与此类似的 docker-compose.yml 文件:

代码语言:javascript复制
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

这是所需的最低配置。

通过运行调出堆栈

代码语言:javascript复制
docker-compose up -d

# If using docker-compose-plugin
docker compose up -d

登录管理界面

http://127.0.0.1:81 当你的 Docker 容器运行时,在管理界面的端口上连接到它。有时,由于密钥的原因,这可能需要一点时间。默认管理员用户:

代码语言:javascript复制
Email:    admin@example.com
Password: changeme

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

截图

高级配置

使用 Docker 网络

对于那些在与 NPM 相同的 Docker 主机上的 Docker 中运行一些上游服务的人来说,这里有一个技巧可以更好地保护事情。通过创建自定义 Docker 网络,您无需将上游服务的端口发布到所有 Docker 主机的接口。

创建一个网络,即“scoobydoo”:

代码语言:javascript复制
docker network create scoobydoo

然后将以下内容添加到 docker-compose.ymlNPM 和此 Docker 主机上运行的任何其他服务的文件中:

代码语言:javascript复制
networks:
  default:
    external: true
    name: scoobydoo

看一个 Portainer 的例子:

代码语言:javascript复制
version: '3.8'
services:

  portainer:
    image: portainer/portainer
    privileged: true
    volumes:
      - './data:/data'
      - '/var/run/docker.sock:/var/run/docker.sock'
    restart: unless-stopped

networks:
  default:
    external: true
    name: scoobydoo

现在,在 NPM UI 中可以创建一个代理主机,并将其 portainer 用作主机名和端口 9000。尽管此端口未在 docker-compose 文件中列出,但它已由 Portainer Docker 映像“公开”,并且在此 Docker 网络之外的 Docker 主机上不可用。服务名称用作主机名,因此请确保使用同一网络时你的服务名称是唯一的。

Docker 健康检查

构建 Dockerfile 此项目的不包含 a HEALTHCHECK,但可以通过将以下内容添加到文件中的服务来选择使用此功能 docker-compose.yml:

代码语言:javascript复制
healthcheck:
  test: ["CMD", "/bin/check-health"]
  interval: 10s
  timeout: 3s

开源地址:https://github.com/NginxProxyManager/nginx-proxy-manager

END

0 人点赞