前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >推荐一个功能炸裂的nginx管理工具

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

作者头像
IT运维技术圈
发布2024-11-23 09:32:28
发布2024-11-23 09:32:28
46900
代码可运行
举报
文章被收录于专栏:IT运维技术圈IT运维技术圈
运行总次数:0
代码可运行

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 文件,内容如下:

代码语言:javascript
代码运行次数:0
运行
复制
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 接口,功能上也足够满足大多数常见的反向代理需求。

代码语言:javascript
代码运行次数:0
运行
复制
官网:
https://nginxproxymanager.com/

项目地址:
https://github.com/NginxProxyManager/nginx-proxy-manager

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 优势
  • 劣势
  • 适用平台
  • 能否管理多个 Nginx 及 Nginx 集群
  • 管理其他的反向代理
  • 业务场景
  • Web 端访问
    • 默认账户密码
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档