⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 Java笔记虾 「Java笔记虾」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

该项目开箱即用,支持 Docker 一键部署,可以让用户通过 Web 界面在线配置、管理 Nginx 服务,支持转发、重定向、SSL 证书、高级配置等功能。

1 项目目标

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

2 特征

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

3 快速设置

  • 安装 Docker 和 Docker-Compose
  • 创建一个与此类似的 docker-compose.yml 文件:
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

这是所需的最低配置。

  • 通过运行调出堆栈
docker-compose up -d

# If using docker-compose-plugin
docker compose up -d
  • 登录管理界面

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

Email:    admin@example.com
Password: changeme

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

4 截图

5 高级配置

使用 Docker 网络

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

  • 创建一个网络,即“scoobydoo”:
docker network create scoobydoo
  • 然后将以下内容添加到 docker-compose.ymlNPM 和此 Docker 主机上运行的任何其他服务的文件中:
networks:
default:
external: true
name: scoobydoo
  • 看一个 Portainer 的例子:
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:

healthcheck:
test: ["CMD", "/bin/check-health"]
interval: 10s
timeout: 3s

开源地址:

https://github.com/NginxProxyManager/nginx-proxy-manager

文章目录
  1. 1. 1 项目目标
  2. 2. 2 特征
  3. 3. 3 快速设置
  4. 4. 4 截图
  5. 5. 5 高级配置
    1. 5.1. 使用 Docker 网络
    2. 5.2. Docker 健康检查