Flutter Nginx配置管理插件nginx_le的使用
Flutter Nginx配置管理插件nginx_le的使用
概述
nginx_le
是一个用于创建和管理自动获取和续订HTTPS证书的Nginx服务器的Docker容器和工具。它使用Let’s Encrypt的Certbot工具来获取和续订证书。
关键特性
- 自动证书获取和续订:无需手动干预,自动处理证书的获取和续订。
- 无停机时间:在续订证书时,Nginx服务器保持在线。
- 支持公共和私有Web服务器:适用于面向公众的Web服务器和内部开发环境。
- 支持通配符证书:可以为多个子域名获取通配符证书。
- 易于开发者使用:开发者可以轻松获取真实证书。
前提条件
要获取Let’s Encrypt证书,必须满足以下条件:
- 公共DNS记录:对于公共Web服务器,主机必须有一个公共DNS记录。
- 私有Web服务器:需要创建一个公共DNS A记录,并使用支持的DNS提供商进行DNS验证。
快速开始
公共Web服务器
公共Web服务器通过公共IP地址暴露端口80和443,并且具有公共DNS A记录(例如,host.mydomain.com
解析到Web服务器的IP地址)。
私有Web服务器
私有Web服务器(没有公共互联网访问)使用Certbot的DNS认证方法。Nginx-LE需要向外连接到Let’s Encrypt服务器和DNS服务器,但不需要入站连接。
部署Nginx-LE
Nginx-LE提供了多种部署方式:
方法 | 使用场景 | 备注 |
---|---|---|
nginx-le config |
最快启动服务器的方法 | 提示你输入构建Web服务器所需的核心信息,然后创建Nginx-LE容器。使用 nginx-le start 启动Web服务器。 |
docker-compose |
通过环境变量配置容器 | 如果你已经在使用docker-compose进行部署,这是一个自然的选择。 |
docker create |
手动设置所有必需的环境变量 | 手动创建容器。 |
自定义镜像 | 修改Nginx-LE Docker镜像 | 允许你自定义镜像并添加额外的工具。 |
构建 | 修改源代码或详细Nginx配置 | 自己动手丰衣足食。 |
Nginx-LE CLI工具
Nginx-LE提供了可选的CLI工具来管理Nginx-LE实例。这些工具基于Dart和DCli库。
安装CLI工具
-
安装DCli
sudo apt-get update sudo apt-get install --no-install-recommends -y wget ca-certificates gnupg2 wget https://github.com/bsutton/dcli/releases/download/latest-linux/dcli_install -O dcli_install chmod +x dcli_install export PATH="$PATH":"$HOME/.pub-cache/bin":"$HOME/.dcli/bin" ./dcli_install
-
安装Nginx-LE CLI
pub global activate nginx_le
CLI命令
命令 | 描述 | 注释 |
---|---|---|
build |
构建Docker镜像 | 只有在需要自定义代码时才需要。 |
config |
配置Nginx-LE并创建Docker容器 | 在运行其他命令之前必须先运行此命令(除了build )。 |
start |
启动Nginx-LE | 启动Nginx-LE Docker容器。 |
restart |
重启Nginx-LE | 重启Docker容器。 |
stop |
停止Nginx-LE | 停止Docker容器。 |
acquire |
获取或续订Let’s Encrypt证书 | 获取证书的方法取决于选择的认证提供者。如果使用AUTO_ACQUIRE模式,则此操作会自动进行。 |
revoke |
撤销当前的Let’s Encrypt证书 | 完整撤销证书。如果你在生产环境和测试环境之间切换证书类型,需要运行撤销和获取操作。 |
cli |
连接到Docker容器的bash shell | 在Nginx-LE Docker容器内玩耍。 |
logs |
查看容器中的日志 |
示例
nginx-le config
构建Nginx-LE
大多数用户不需要运行构建命令。构建工具主要用于Nginx-LE开发团队和需要自定义Nginx-LE底层代码的用户。
构建命令
git clone https://github.com/bsutton/nginx-le.git
cd cli
pub_release multi
构建选项
选项 | 描述 |
---|---|
--image |
设置Docker镜像/标签名称(repo/image:version)。例如:--image=noojee/nginx-le:1.0.0 。 |
--update-dcli |
强制构建从最新版本的dart/dcli拉取,而不是使用Docker缓存实例。 |
--debug |
输出额外的构建信息。 |
配置Nginx-LE
使用 nginx-le config
命令配置Nginx-LE容器。运行配置命令时,Nginx-LE将销毁并创建一个带有新设置的新容器。
启动方法
方法 | 描述 |
---|---|
nginx-le start |
最简单的方法。nginx-le config 将创建一个容器。使用 nginx-le start 和 nginx-le stop 启动/停止容器。 |
docker start |
nginx-le config 将创建一个容器。使用 docker start 和 docker stop 启动/停止容器。 |
docker-compose up |
docker-compose up 将创建并启动容器。你必须在 docker-compose.yaml 文件中指定一些环境变量和卷来配置Nginx-LE。你必须至少使用 docker-compose 启动一次容器才能运行 nginx-le config 。 |
内容提供者
Nginx-LE支持四种类型的内容提供者:
提供者 | 描述 |
---|---|
静态 | 从本地文件夹提供静态Web内容。 |
泛型代理 | 将请求转发到能够响应HTTP请求的Web应用程序服务器。通常与Nginx-LE服务器在同一主机上,连接不加密。 |
Tomcat代理 | 将请求转发到本地Tomcat Web应用程序服务器的8080端口。 |
自定义 | 允许你配置自己的Nginx位置和上游设置。 |
认证提供者
认证提供者 | 使用场景 | 描述 |
---|---|---|
HTTP01Auth | 公共Web服务器使用FQDN证书 | Web服务器必须在公共IP地址上可访问。这是最简单的验证方法,因为它适用于任何DNS提供商。 |
Cloudflare | 公共和私有Web服务器。支持FQDN和通配符证书 | 最灵活的认证提供者,DNS必须托管在Cloudflare上。 |
Namecheap | 公共和私有Web服务器。支持FQDN和通配符证书 | 不推荐使用。Namecheap API非常不稳定,目前限制为不超过10个A记录的域名。 |
示例代码
/* Copyright (C) S. Brett Sutton - All Rights Reserved
* Unauthorized copying of this file, via any medium is strictly prohibited
* Proprietary and confidential
* Written by Brett Sutton <bsutton@onepub.dev>, Jan 2022
*/
///
/// This is an executable not a library
///
/// Run:
///
/// nginx-le config
///
/// nginx-le start
///
/// You now have an nginx web server with automatic certificate renewal.
library;
总结
nginx_le
是一个强大的工具,可以帮助你快速创建和管理自动获取和续订HTTPS证书的Nginx服务器。通过Docker和CLI工具,你可以轻松地在不同的环境中部署和管理Nginx服务器。希望本文档能帮助你更好地理解和使用 nginx_le
。
更多关于Flutter Nginx配置管理插件nginx_le的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html