推荐一个功能炸裂的nginx管理工具

科技   2024-08-01 14:19   广东  

nginx-proxy-manager 是一个基于 Nginx 的反向代理管理工具,它提供了一个简单易用的图形用户界面(GUI),使用户能够轻松配置和管理 Nginx 反向代理、SSL 证书和其他相关设置。

优势


  1. 易用性:提供了一个友好的图形用户界面,简化了 Nginx 配置和管理的复杂性。
  2. 自动化:支持自动获取和管理 SSL 证书(例如通过 Let's Encrypt)。
  3. 多域名支持:可以轻松管理多个域名及其相关配置。
  4. 开源:代码公开,可以根据需要进行修改和定制。
  5. Docker 支持:可以通过 Docker 容器快速部署和运行。

劣势


  1. 功能限制:虽然适用于大多数常见的反向代理场景,但对于非常复杂和定制化的需求可能不够灵活。
  2. 资源消耗:带有图形界面的应用程序在资源消耗上比纯命令行工具要高一些。
  3. 依赖性:依赖 Docker 进行部署,可能不适用于所有环境。

适用平台

Windows、macOS、Linux

能否管理多个 Nginx 及 Nginx 集群


nginx-proxy-manager 主要用于管理单个 Nginx 实例,并不直接支持对多个 Nginx 实例或 Nginx 集群的管理。如果你需要管理多个 Nginx 实例,可以考虑搭建多个 nginx-proxy-manager 实例,分别管理不同的 Nginx 服务器。

管理其他的反向代理


nginx-proxy-manager 主要是为 Nginx 设计的,不能直接管理其他类型的反向代理服务器(例如 Apache 或 HAProxy)。如果你需要管理其他类型的反向代理服务器,可能需要寻找专门的管理工具或手动配置。

业务场景


1、托管多个站点
问题:需要托管多个站点,并为每个站点配置 SSL 证书。
解决方法:在 GUI 中添加多个 Proxy Host,为每个站点配置域名和 SSL 证书。
示例:在 GUI 中添加 example1.com 和 example2.com,并通过 Let's Encrypt 获取 SSL 证书。

2、开发环境中的服务转发
问题:在开发环境中,需要快速配置反向代理将请求转发到不同的服务。
解决方法:在 GUI 中添加 Proxy Host,将请求转发到开发服务器的不同端口。
示例:将 dev.example.com 转发到 localhost:3000。

3、负载均衡
问题:在高流量应用中,需要进行负载均衡。
解决方法:在 GUI 中配置多个后端服务器,实现请求分发。
示例:将 app.example.com 配置为轮询分发到 server1:8000 和 server2:8000

4、SSL 证书自动续期
问题:需要为站点配置自动续期的免费 SSL 证书。
解决方法:在 GUI 中选择 Let's Encrypt,并启用自动续期功能。
示例:为 secure.example.com 获取并自动续期 SSL 证书。

5、访问控制
问题:需要为特定站点配置访问控制,限制访问权限。
解决方法:在 GUI 中配置访问控制列表(ACL)。
示例:仅允许特定 IP 地址访问 private.example.com。

6、静态资源缓存
问题:需要配置静态资源缓存,提高站点性能。
解决方法:在 GUI 中配置 Nginx 缓存规则。
示例:为 static.example.com 配置静态文件缓存。

7、域名重定向
问题:需要将一个域名重定向到另一个域名。
解决方法:在 GUI 中配置域名重定向规则。
示例:将 old.example.com 重定向到 new.example.com。

8、WebSocket 支持
问题:需要为 WebSocket 应用配置反向代理。
解决方法:在 GUI 中启用 WebSocket 支持。
示例:将 ws.example.com 转发到 WebSocket 服务器。

9、日志监控
问题:需要配置 Nginx 日志以监控和分析流量。
解决方法:在 Docker 容器中配置日志卷,定期查看和分析日志。
示例:挂载日志卷 /var/log/nginx,定期分析访问日志。


产品截图


安装方法

创建一个 docker-compose.yml 文件,内容如下:
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

  db:
    image: 'mysql:5.7'
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql


Web 端访问

nginx-proxy-manager 提供了一个图形用户界面。启动容器后,可以通过浏览器访问 http://<your-server-ip>:81 进入管理界面。

默认账户密码


初始登录凭据:
  • 电子邮件:admin@example.com
  • 密码:changem


总结

nginx-proxy-manager 是一个强大且易用的 Nginx 反向代理管理工具,适合那些希望简化 Nginx 配置和管理的用户。它通过 Docker 容器进行部署,提供了一个友好的图形用户界面,方便用户进行各种配置。尽管没有公开 API 接口,功能上也足够满足大多数常见的反向代理需求。
官网:https://nginxproxymanager.com/
项目地址:https://github.com/NginxProxyManager/nginx-proxy-manager

觉得不错别忘了给波哥一键三连哦!


波哥

IT行业近二十年的IT老炮。常年潜伏于国企、各一二线大厂中。硬件集成入行,直至虚拟技术、容器化。岗位历经系统集成、DBA、全栈开发、sre、项目经理、产品经理、部门总监。

主要作品:
  • IT类资源汇聚门户:https://www.98dev.com

  • 各大短视频平台:98dev

  • 各大主要技术论坛博客:IT运维技术圈

  • 长视频教学作品:《波哥讲网络》《波哥讲git》《波哥讲gitlab》

  • 小程序:IT面试精选

  • 构建技术社区:+V itboge1521 入学习交流群

IT运维技术圈
每天分享:Linux运维、网络运维、it运维、运维技术、软件运维、硬件运维、IDC机房运维、桌面运维、运维工程师、高效运维、运维社区、互联网运维、devops、sre、等文章
 最新文章