01
2024
08
15:43:23

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

图片


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


优势


易用性:提供了一个友好的图形用户界面,简化了 Nginx 配置和管理的复杂性。

自动化:支持自动获取和管理 SSL 证书(例如通过 Let's Encrypt)。

多域名支持:可以轻松管理多个域名及其相关配置。

开源:代码公开,可以根据需要进行修改和定制。

Docker 支持:可以通过 Docker 容器快速部署和运行。


劣势


功能限制:虽然适用于大多数常见的反向代理场景,但对于非常复杂和定制化的需求可能不够灵活。

资源消耗:带有图形界面的应用程序在资源消耗上比纯命令行工具要高一些。

依赖性:依赖 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




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/7327.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: