hispanico.nginx_revproxy
ansible-role-nginx_revproxy
安装并配置 Nginx 作为多个网站的反向代理。
GitHub | 质量 | 下载量 | Galaxy | 版本 |
---|---|---|---|---|
要求
此角色需要 Ansible 2.4 或更高版本。
角色变量
默认值:
nginx_revproxy_sites: # 反向代理的网站列表
default: # 设置默认网站返回 444(无响应关闭连接)
ssl: false # 如果要将 http 重定向到 https,请设置为 True
letsencrypt: false
example.com: # 域名
domains: # server_name 别名列表
- example.com
- www.example.com
upstreams: # 上游列表
- { backend_address: 192.168.0.100, backend_port: 80 }
- { backend_address: 192.168.0.101, backend_port: 8080 }
auth: # 定义此块以设置单个 HTTP 用户/密码,或不定义以允许未认证的 vhosts
login: myusername
password: mysecretpassword
extra_locations: # 设置此块以添加额外位置,或不定义以不需要额外位置
websocket: # 额外位置名称
upstreams: # 额外位置的上游列表
- { backend_address: 192.168.0.102, backend_port: 8088 }
listen: 9000 # 指定要监听的清晰 HTTP 端口,或不定义以使用 80
ssl: false # 如果要将 http 重定向到 https,请设置为 True
letsencrypt: false # 如果要使用 letsencrypt,请设置为 True
conn_upgrade: true # 设置连接升级头值
acls: # 限制对某些客户端地址的访问(值可以是地址、CIDR、unix 或 all)
- { mode: allow, value: 192.168.0.1 }
- { mode: deny, value: all }
example.org: # 域名
domains: # server_name 别名列表
- example.org
- www.example.org
upstreams: # 上游列表
- { backend_address: 192.168.0.200, backend_port: 80 }
- { backend_address: 192.168.0.201, backend_port: 8080 }
listen: 9000 # 指定要监听的清晰 HTTP 端口,或不定义以使用 80
listen_ssl: 9001 # 指定要监听的 HTTPS 端口,或不定义以使用 443
ssl: true # 如果要将 http 重定向到 https,请设置为 True
ssl_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem # ssl 证书,在未使用 letsencrypt 时使用
ssl_certificate_key: /etc/ssl/private/ssl-cert-snakeoil.key # ssl 证书密钥,在未使用 letsencrypt 时使用
letsencrypt: false # 如果要使用 letsencrypt,请设置为 True
letsencrypt_email: "" # 设置 letsencrypt 证书的电子邮件
nginx_revproxy_certbot_auto: false # 设置为 true 以安装 certbot-auto
nginx_revproxy_certbot_packages: # 不使用 certbot-auto 时从仓库安装这些包
- certbot
- python3-certbot-nginx
依赖
无。
示例 Playbook
- hosts: all
roles:
- hispanico.nginx_revproxy
vars:
nginx_revproxy_sites:
default:
ssl: false
letsencrypt: false
example.com:
domains:
- example.com
- www.example.com
upstreams:
- { backend_address: 192.168.0.100, backend_port: 80 }
- { backend_address: 192.168.0.101, backend_port: 80 }
ssl: true
letsencrypt: false
许可证
根据 GPLv3 许可证授权。有关详细信息,请参阅 LICENSE 文件。
作者信息
Hispanico