hoall.nginx-proxy
角色 nginx-proxy
该角色安装 nginx 作为代理服务器。设置仅适用于 https 使用。因此,请确保您配置了 ssl 证书。dhparam 将在安装过程中替换为新生成的版本。该角色还设置了一些对代理服务器有用的默认值。
根据 Mozilla 基金会的定义,安全级别为 现代(有关更多信息,请参阅他们的生成器 https://mozilla.github.io/server-side-tls/ssl-config-generator/)。该配置适合大多数系统。我是在 Ubuntu 16.04 上生成模板的。HSTS 已启用。根据 ssllabs.com 的评分,该配置获得 A+ 评级。
默认网站映射到 /。我创建并使用此角色来抽象和保护与我的 tomcat 服务器的连接。
如果您有改进意见,请创建一个合并请求。
需求
需要 ssl 证书和 openssl(用于 dhparam)。如果您正在寻找一个好的角色,建议查看 geerlingguy.certbot。
角色变量
注意:需要重写的变量用大写字母书写。
名称 | 默认值 | 描述 |
---|---|---|
NP_SERVER_NAME |
NONE | '包含服务器(和位置)应侦听的名称的字符串。例如:"example.com www.example.com"' |
NP_SSL_CERTIFICATE |
NONE | '您的 ssl 证书的路径(fullchain.pem)。例如:/etc/letsencrypt/live/example.de/fullchain.pem' |
NP_SSL_CERTIFICATE_KEY |
NONE | '您的 ssl 证书私钥的路径(privkey.pem)。例如:/etc/letsencrypt/live/example.de/privkey.pem' |
NP_PROXY_PASS |
NONE | '位置的路径。例如:"http://127.0.0.1:8080/example/"' |
NP_REWRITE |
NONE | '网站的重写规则。例如:"^/example(.*)$ $1 last"' |
np_worker_processes |
{{ ansible_processor_count }} | 'nginx 应使用的工作进程数量。默认为每个核心一个,由 ansible 设置确定。' |
np_worker_connections |
1024 | '每个 worker_process 的连接数量(包括到后端服务器的连接)。请记住,浏览器通常会打开多个连接以提高速度。' |
np_keep_alive_timeout |
15 | '空闲客户端连接的超时时间(以秒为单位)。' |
np_client_max_body_size |
10m | '设置客户端请求主体的最大允许大小,指定在“Content-Length”请求头字段中。' |
np_client_body_buffer_size |
10k | '设置读取客户端请求主体的缓冲区大小。' |
np_proxy_connect_timeout |
10 | '定义与代理服务器建立连接的超时时间。需要注意的是,此超时时间通常不能超过 75 秒。' |
np_proxy_send_timeout |
10 | '定义向代理服务器传输请求的超时时间(以秒为单位)。' |
np_proxy_read_timeout |
10 | '定义从代理服务器读取响应的超时时间(以秒为单位)。' |
np_proxy_buffers |
"32 8k" | '设置用于读取从代理服务器接收的响应第一部分的缓冲区大小。该部分通常包含小型响应头。默认为一个内存页面的大小,具体为 4K 或 8K,视平台而定。可以设置为更小的值。' |
注意:本文档的部分内容来自官方 nginx 文档(https://nginx.org/en/docs/)。这些源和文档遵循 2-Clause BSD 类许可证进行分发。
根据您的需要修改变量。
依赖
示例 Playbook
- hosts: servers
roles:
- { role: hoall.nginx-proxy, NP_SERVER_NAME: "example.com www.example.com", NP_SSL_CERTIFICATE: /etc/letsencrypt/live/fullchain.pem, NP_SSL_CERTIFICATE_KEY: /etc/letsencrypt/live/privkey.pem }
许可证
BSD
作者信息
Felix Paetow fhmpaetow@fsfe.org