hispanico.nginx_revproxy

ansible-role-nginx_revproxy

安装并配置 Nginx 作为多个网站的反向代理。

GitHub 质量 下载量 Galaxy 版本
CI quality downloads Galaxy Version

要求

此角色需要 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

安装
ansible-galaxy install hispanico.nginx_revproxy
许可证
gpl-3.0
下载
69.4k
拥有者
@openwisp Contributor and @ninuxorg Member