lesfurets.nginx

Nginx

构建状态 许可证:GPL v3 Ansible Galaxy: lesfurets.nginx

Ansible角色,用于从系统包安装Nginx

依赖

该角色依赖lesfurets.epel,适用于RedHat/CentOS。

角色变量

变量可用于配置Nginx以及定义各种虚拟主机和上游服务器。 您还可以提供一个Nginx用户列表,这将把这些用户加入Nginx组。

Nginx配置变量

配置路径变量:

  • nginx_conf_path:设置配置路径。默认是/etc/nginx/conf.d
  • nginx_conf_file_path:设置主配置文件路径。默认是/etc/nginx/nginx.conf
  • nginx_mime_file_path:设置mime文件的路径。默认是/etc/nginx/mime.types

日志配置变量:

  • nginx_error_log:设置错误日志文件的路径和选项。默认是/var/log/nginx/error.log warn
  • nginx_access_log:设置访问日志文件的路径和选项。默认是/var/log/nginx/access.log main buffer=16k flush=2m

工作进程配置变量:

  • nginx_worker_processes:设置工作进程的配置。默认依赖于ansible_processor_vcpusansible_processor_count
  • nginx_worker_connections:设置每个工作进程的最大连接数。默认是1024
  • nginx_multi_accept:设置Nginx的multi_accept参数。默认是off

TCP连接选项变量:

  • nginx_sendfile:设置sendfile参数。默认是on
  • nginx_tcp_nopush:设置tcp_nopush参数。默认是on
  • nginx_tcp_nodelay:设置tcp_nodelay参数。默认是on

Nginx keepalive设置:

  • nginx_keepalive_timeout:设置keepalive_timeout参数(以秒为单位)。默认是65
  • nginx_keepalive_requests:设置keepalive_requests参数。默认是100

Nginx行为设置:

  • nginx_server_tokens:设置server_tokens参数(是否在响应头中显示Nginx版本)。默认是on

  • nginx_client_max_body_size:设置client_max_body_size参数(最大文件上传大小)。默认是64m

  • nginx_server_names_hash_bucket_size:设置server_names_hash_bucket_size参数。默认值是64

  • nginx_proxy_cache_path:设置proxy_cache_path参数:路径和设置(例如/var/cache/nginx keys_zone=cache:32m)。默认未配置。

  • nginx_extra_conf_options:是一组可选的参数(普通Nginx配置),可插入到主配置文件的顶部。默认为空。

  • nginx_extra_http_options:是一组可选的参数(普通Nginx配置),可插入到主配置文件的顶级http块中。默认为空。

  • nginx_capable_users:是一个用户列表,将被添加到Nginx组。这在例如设置一个Web服务时非常有用,如果您想要在该用户拥有的套接字上进行proxy_pass。

虚拟主机变量

  • nginx_remove_default_vhost:可以设置为true以移除默认Nginx虚拟主机。默认值为false。

nginx_vhosts:是设定Nginx虚拟主机的一组变量:

  • vhost服务器块变量:

    • listen:设置监听的端口号。默认是80
    • server_name:设置虚拟主机的服务器名称。用作虚拟主机文件名的回退。
    • root可选,设置Web服务器的根目录。默认未设置。
    • index可选,设置索引参数(例如index.html index.htm)。
    • filename可选,设置虚拟主机文件名。
    • error_page可选,设置错误页面参数。
    • access_log可选,设置访问日志参数。
    • error_log可选,设置错误日志参数。
    • extra_parameters可选,可以用于在虚拟主机服务器块中添加普通Nginx配置。
  • SSL相关变量:

    • use_ssl可选,设置为true时,在虚拟主机服务器块中添加ssl on;指令。
    • redirect_http_https可选,设置为true时,添加一个在80端口监听并重定向到https://$host$request_uri;的服务器块。
    • ssl_params可选,要添加的SSL参数列表:[] # 默认的SSL参数:
    ssl_certificate: '/etc/nginx/cert.crt'
    ssl_certificate_key: '/etc/nginx/cert.key'
    ssl_session_cache: 'builtin:1000  shared:SSL:10m'
    ssl_protocols: 'TLSv1 TLSv1.1 TLSv1.2'
    ssl_ciphers: 'HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4'
    ssl_prefer_server_ciphers 'on'
    
    • locations
      • vhost位置块变量:
      • location:设置资源位置(例如//static)。也接受一组键/值参数以配置定义资源的位置块。
    • state:用于决定虚拟主机是否应存在。默认设置为present

下面的部分提供了一些设置示例。

示例剧本

Web服务器示例

- hosts: webservers
  vars:
    - nginx_vhosts:
      - server_name: "mywebsite.com"
        listen: "80"
        root: "/srv/www/mywebsite"
        index index.html;
        locations:
          - location: "/"
            try_files: "$uri $uri/ =404"
  roles:
    - lesfurets.nginx

反向代理与HTTPS示例

- hosts: reverse_proxy
  vars:
    - nginx_vhosts:
      - listen: "443"
        use_ssl: true
        redirect_http_https: true
        ssl_params:
          - ssl_certificate: "/srv/ssl/cert.pem"
          - ssl_certificate_key: "/srv/ssl/cert.key"
        locations:
          - location: "/"
            proxy_pass: "http://127.0.0.1:8080"
            proxy_set_header:
              - "Host $host"
              - "X-Real-IP $remote_addr"
              - "X-Forwarded-For $proxy_add_x_forwarded_for"
              - "X-Forwarded-Proto $scheme"
  roles:
    - lesfurets.nginx

许可证

根据GPLv3许可证授权。请查看许可证文件以获取详细信息。

关于项目

Nginx installation and configuration for Linux

安装
ansible-galaxy install lesfurets.nginx
许可证
gpl-3.0
下载
91
拥有者