HanXHX.nginx
Nginx 在 Debian/FreeBSD 的 Ansible 角色
在 Debian/FreeBSD 上安装和配置 Nginx。
功能:
- SSL/TLS 加强支持
- 管理站点/位置的基本认证
- 代理 + 上游
- 快速 PHP 配置
- 预配置站点模板(适用于多种应用)
- 自动配置 SSL/TLS 网站的 HTTP2
- 管理动态模块(安装和加载)
- 部署自定义的 facts.d 站点配置
- 支持使用代理协议监听
- 使用 acme.sh 生成证书(让我们加密)-- 实验性功能
支持的操作系统:
| 操作系统 | 工作 | 稳定(积极支持) |
|---|---|---|
| Debian Jessie (8) | 是 | 查看最新支持的版本 (1.5.0) |
| Debian Stretch (9) | 是 | 查看最新支持的版本 (1.9.0) |
| Debian Buster (10) | 是 | 是 |
| Debian Bullseye (11) | 是 | 是 |
| Debian Bookworm (12) | 是 | 暂无支持 :) |
| FreeBSD 11 | 不适用 | 否 |
| FreeBSD 12 | 不适用 | 否 |
| Ubuntu 20.04 | 是 | 是 |
| Ubuntu 22.04 | 是 | 是 |
要求
- Ansible >=2.11
- 如果将
nginx_backports设置为 true,必须在启动此角色之前安装 backports 仓库。
角色变量
打包
Debian:
nginx_apt_package:APT nginx 包(尝试:apt-cache search ^nginx)nginx_backports:从 backport 仓库安装 nginx(布尔值)
FreeBSD:
nginx_pkgng_package:PKGNG nginx 包(应为 "nginx" 或 "nginx-devel")
共享
nginx_root:文件存放的根目录nginx_log_dir:日志目录(如果更改,请别忘记更改 logrotate 配置)nginx_resolver:DNS 解析器列表(默认:OpenDNS)nginx_error_log_level:默认日志级别nginx_auto_config_httpv2:布尔值,尽可能自动配置 HTTP2nginx_fastcgi_fix_realpath:布尔值,使用 realpath 进行 fastcgi(修复 symlink 和 PHP opcache 的问题)nginx_default_hsts:字符串,默认发送的 HSTS 头
Nginx 配置
nginx_usernginx_worker_processesnginx_pid:守护进程 pid 文件nginx_events_*:事件块中的所有变量nginx_http_*:http 块中的所有变量nginx_custom_core:指令列表(用于核心,将数据放入/etc/nginx/nginx.conf)nginx_custom_http:指令列表(将数据放入/etc/nginx/conf.d/custom.conf)nginx_module_packages:要安装的模块包列表(Debian)nginx_load_modules:要加载的模块列表(完整路径),仅适用于 FreeBSD
其他
nginx_debug_role:如果需要查看 no_log 任务的输出,请设置为 true
关于模块
Debian backports 从 /etc/nginx/modules-enabled 目录加载模块。已不再支持禁用/启用。请等待进一步更新。
细致配置
注意
- 对 Debian/Ubuntu 的主动支持。
- FreeBSD 的支持为实验性。目前我只测试了 10.2(但可能在其他版本上也能工作)。
依赖关系
请参考: requirements.yml。
如果您需要在 Vagrant 上本地开发此角色
在使用 Vagrant 之前,请运行一次:
ansible-galaxy install -p ./tests/ HanXHX.php,master
如果您需要使用 molecule 本地开发此角色
查看 molecule 目录中的可用场景。
使用 debian-12 场景:
molecule -v -c molecule/_shared/base.yml verify -s debian-12
示例播放簿
请查看 tests/test.yml。
许可证
GPLv2
捐赠
如果这段代码帮助了您或者您在项目中使用了它,请随意请我喝一杯 :beers:
- 比特币:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn - 以太坊:
63abe6b2648fd892816d87a31e3d9d4365a737b5 - 莱特币:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD - 门罗币:
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
没有加密货币?:star: 这个项目也是一种感谢的方式! :sunglasses:
作者信息
- 推特: @hanxhx_
