Стандартная роль для Nginx web-сервера Роль устанавливает и конфигурирует Nginx-сервер (используется стандартный репозиторий)
Роль не устанавливает сертификаты, только проверяет их наличие и логгирует результат. Проверка наличия/отсутствия сертификатов и ключей для конфигурационных файлов conf.d завернута в тег check_ssl_certificates
Обязательные параметры. Умолчание задано.
hk_nginx_user: nginxустанавливает пользователя Nginxhk_nginx_connections: 1024определяет параметр worker_connectionshk_nginx_gzip: falseвставляет в контекст http стандартный блок настроек gziphk_nginx_directory: /etc/nginxкорневая директория конфигурации Nginxhk_nginx_ssl_directory: "{{ hk_nginx_directory }}/ssl"директория для хранения ssl-ключей и сертификатовhk_nginx_log_directory: /var/log/nginxстандартная директория для хранения текстовых логовhk_nginx_default_server_config: trueвыключение параметра приводит к запрету установки конфигурации Default HTTP server (см. files), в случае отсутствия custom-конфигурации. Если конфигурационный файл default.conf создан, при установлке параметра в false - он будет удален.
Необязательные параметры, умолчание не задано. В контекст http возможно добавить произвольные параметры, с помощью Generic Variables. Пример:
hk_nginx_http_generics:
param1:
name: proxy_connect_timeout
value: 100
param2:
name: client_max_body_size
value: 100m
Задание параметров запускает добавление конфигурации для сервисов, не обязательно к использованию, умолчание не задано.
nameиспользуется для задания стандартных имен для конфигурации сервера и log-файлов.ssltrue/false используется для указания типа сервера.listenзадает директиву listen в контексте сервера. Примеры значений: 80 127.0.0.1:80 {{ ansible_default_ipv4.address }}:443server_nameзадает директиву server_name в контексте сервера. Допустимо указание нескольких server_name в строку, через пробел, в кавычках.ssl_required.certificateобязательный параметр, если параметр ssl установлен в true. Задает путь к ssl-сертификату.ssl_required.certificate_keyобязательный параметр, если параметр ssl установлен в true. Задает путь к приватному ключу для ssl-сертификата.
listen_paramsДополнительные параметры для директивы listen http://nginx.org/ru/docs/http/ngx_http_core_module.html#listenhttp2httpsЕсли задан, вставляет стандартный блок редиректа http -> https (использовать для не ssl-сервера)robotsdisallowЕсли задан, выставляет стандартный блок запрета чтения / роботамиrootЗадает значение для параметра rootindexЗадает значение для параметра indexaccess_logtrue/false используется для включения/отключения стандартного лога в контексте сервера.error_logtrue/false используется для включения/отключения стандартного лога в контексте сервера.ssl_optionalпроизвольные опциональные параметры ssl, используются если ssl установлен в true. Пример:
hk_nginx_server:
- name: {{ ansible_fqdn }}
ssl: true
ssl_optional:
param1:
name: ssl_protocols
value: TLSv1 TLSv1.1 TLSv1.2
param2:
name: ssl_ciphers
value: AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5
genericsпроизвольные опциональные параметры серверного контекста. Пример:
hk_nginx_server:
- name: {{ ansible_fqdn }}
generics:
param1:
name: keepalive_timeout
value: 10s
param2:
name: ignore_invalid_headers
value: 'on'
nameобязателен, если включено логгирование на уровне локации. Используется для задания имени log-файла.pathобязательная директива, задающая локацию.fastcgi_passобязателен, если standart_fastcgi установлен в true. Используется для указания параметра fastcgi_pass.
aliasЗадает значение для параметра alias.rootЗадает значение для параметра root.access_logtrue/false используется для включения/отключения стандартного лога в контексте локации.error_logtrue/false используется для включения/отключения стандартного лога в контексте локации.standart_proxy_headersвключает стандартный блок с пробросом заголовоков на backend.standart_fastcgiвключает стандартный блок с минимальными настройками fastcgi.standart_websocketвключает стандартный блок с настройками для websocket.genericsпроизвольные опциональные параметры контекста локации. Пример:
hk_nginx_server:
- name: {{ ansible_fqdn }}
locations:
location1:
generics:
custom_rule1:
name: try_files
value: '$uri /images/default.gif'
custom_rule2:
name: types_hash_bucket_size
value: 128
Необязательные параметры, умолчание не задано. В контекст http возможно добавить условия для проверки. Пример:
html:
path: ~ ^/.+\.html$
root: "{{ hk_document_root }}"
generics_if:
rewrite_1:
condition: '!-e $request_filename'
name: rewrite
value: ^(.*)$ /index.php?$1 last
Ниже показан пример как это будет отображено в nginx.conf файле
location ~ ^/.+\.html$ {
root {{ hk_document_root }};
if ( !-e $request_filename ) {
rewrite ^(.*)$ /index.php?$1 last;
}
}