gcoop-libre.apache
Apache 2.x
Rola Ansible, która instaluje Apache 2.x na systemach RHEL/CentOS, Debian/Ubuntu, SLES i Solaris.
Wymagania
Rola nie zarządza plikami certyfikatów i kluczy dla stron korzystających z SSL/TLS.
Jeśli potrzebujesz Apache z PHP, możesz dodać pakiety PHP do zmiennej apache_packages
. Możesz także użyć innej roli, takiej jak geerlingguy.php
lub geerlingguy.apache-php-fpm
, jeśli preferujesz używać PHP jako FPM zamiast modułu Apache.
Zmienne Roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (patrz defaults/main.yml
):
apache_enablerepo: ''
Repozytorium, które ma być używane podczas instalacji Apache (używane tylko w systemach RHEL/CentOS). Jeśli chcesz nowsze wersje Apache niż te dostępne w podstawowych repozytoriach systemu, użyj repozytorium takiego jak EPEL.
apache_listen_ip: '*'
apache_listen_port: 80
apache_listen_port_ssl: 443
Adres IP i porty, na których Apache powinien nasłuchiwać. Przydatne, jeśli masz inny serwis (np. proxy odwrotne), który nasłuchuje na porcie 80 lub 443 i potrzebujesz zmienić domyślne ustawienia.
apache_keepalive: true
apache_keepalive_requests: 500
apache_keepalive_timeout: 5
Te właściwości włączają trwałe połączenia HTTP, a ich czas oczekiwania oraz maksymalna liczba żądań mogą być dostosowane.
apache_prefork_server_limit: 256
apache_prefork_start_servers: 5
apache_prefork_min_spare_servers: 5
apache_prefork_max_spare_servers: 10
apache_prefork_max_clients: 256
apache_prefork_max_requests_per_child: 0
Konfiguracja modułu serwera MPM Prefork. Te właściwości mają zastosowanie do modułu MPM Prefork oraz modułu MPM Worker. Tylko w Apache 2.4 na Debianie można konfigurować tryby MPM z różnymi wartościami, ponieważ mają osobne pliki.
apache_worker_server_limit: 16
apache_worker_start_servers: 3
apache_worker_min_spare_threads: 75
apache_worker_max_spare_threads: 250
apache_worker_max_clients: 400
apache_worker_max_requests_per_child: 0
apache_worker_thread_limit: 64
apache_worker_threads_per_child: 25
Konfiguracja modułu MPM Worker. To dostępne tylko w Apache 2.4 na Debianie GNU/Linux.
apache_event_server_limit: 16
apache_event_start_servers: 3
apache_event_min_spare_threads: 75
apache_event_max_spare_threads: 250
apache_event_max_clients: 400
apache_event_max_requests_per_child: 0
apache_event_thread_limit: 64
apache_event_threads_per_child: 25
Konfiguracja modułu MPM Event. To dostępne tylko w Apache 2.4 na Debianie GNU/Linux.
apache_remove_default_aliases: True
Usuń domyślne aliasy dostarczane z domyślną konfiguracją Apache.
apache_base_dir: '/var/www'
Podstawowy katalog, w którym będą przechowywane strony internetowe. Ta wartość jest używana z kolejnymi trzema do wygenerowania katalogu dokumentów dla wirtualnych hostów, które nie mają wyraźnie określonego katalogu dokumentów.
apache_web_subdir: 'web'
apache_ssl_subdir: 'ssl'
apache_private_subdir: 'private'
Podkatalog dla plików HTTP, HTTPS oraz podkatalog dla plików htpasswd. Jeśli wirtualny host nie ma katalogu dokumentów, rola generuje trzy katalogi:
apache_base_dir/SITENAME/apache_web_subdir
apache_base_dir/SITENAME/apache_ssl_subdir
apache_base_dir/SITENAME/apache_private_subdir
apache_create_vhosts: true apache_vhosts_filename: 'vhosts.conf'
Jeśli ustawiono na true, zostanie utworzony globalny plik konfiguracyjny vhosts oraz jeden plik dla każdego wirtualnego hosta, zarządzany przez zmienne tej roli (patrz poniżej), a następnie umieszczony w folderze konfiguracyjnym Apache. Jeśli ustawisz na false, możesz umieścić własne pliki vhosts w folderze konfiguracyjnym Apache, pomijając te dodawane przez tę rolę.
apache_remove_default_vhost: false
Na Debianie/Ubuntu w konfiguracji Apache zawarty jest domyślny wirtualny host. Ustaw to na true
, aby usunąć ten plik konfiguracyjny domyślnego wirtualnego hosta.
apache_global_vhost_settings: |
DirectoryIndex index.php index.html
# Dodaj inne globalne ustawienia w kolejnych liniach.
Możesz dodać lub nadpisać globalne ustawienia konfiguracyjne Apache w pliku vhosts dostarczonym przez rolę (zakładając, że apache_create_vhosts
jest ustawione na true), używając tej zmiennej. Domyślnie ustawia jedynie konfigurację DirectoryIndex.
apache_global_vhost_access_log_format_combined: '%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"'
apache_global_vhost_access_log_format_proxy: '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"'
Dzięki tym właściwościom możesz dostosować format logu połączeń oraz format logu używanego do rejestrowania żądań skierowanych przez proxy.
apache_global_vhost_aliases:
- name: /images
dest: /var/www/images
Lista aliasów do dodania w vhost.conf. Będą dostępne dla wszystkich wirtualnych hostów. apache_create_vhosts
powinno być włączone.
apache_global_vhost_custom_errors:
- code: error-code
action: error-action
Dostosowania dla stron błędów Apache. Możesz przeczytać o wartościach action
w dokumentacji Apache.
apache_vhosts:
- servername: 'local.dev'
serveralias:
- 'alias1.local'
- 'alias2.local'
serveradmin: webmaster@localhost
documentroot: '/var/www/html'
enabled: true
separate_logs: true
separate_logs_proxy_format: true
custom_errors:
- code: error-code
action: error-action
frame_options: SAMEORIGIN
deflate: true
deflate_dont_vary: User-Agent
fileetag: true
aliases:
- name: alias-url
dest: alias-path
setenvif:
- attribute: 'X-Forwarded-For'
pattern: '(.*)'
var: 'ENV_VAR'
value: 'true'
redirect_to_https: false
allowoverride: 'All'
rewritebase: '/'
custom_rewrites:
- pattern: regex
substitution: text
flags: '[R=301,L]'
conditions:
- test_string: '%{HTTP_HOST}'
pattern: '^old\.site\.com$'
flags: '[NC]'
redirect_to_servername: True
exclude_from_redirect:
- 'valid.alias.com'
redirect_to_file: '/index.php'
include_htaccess: False
documentroot_extra_parameters: 'Custom Document Root configuration'
restricted_access:
- path: '/secret'
regex: false
all: false
ips:
- '127.0.0.1'
- '192.168.0.1'
hosts:
- 'www.site.com'
env_variables:
- 'ENV_VAR'
htpasswd: '/.htpasswd'
extra_parameters: 'Custom VHost configuration'
Dodaje zestaw właściwości dla każdego wirtualnego hosta. Jedynym wymaganym jest servername
. Jeśli nie ma documentroot, zostanie wygenerowany zgodnie z opisem powyżej.
Wszystkie żądania do ServerAlias będą przekierowywane do ServerName z kodem 301, z wyjątkiem tych aliasów określonych w właściwości exclude_from_redirect
.
Ścieżki w restricted_access
powinny być względne do Document Root. Jeśli wirtualny host nie ma wyraźnie określonego Document Root, plik htpasswd będzie w katalogu apache_private_subdir.
Znak |
oznacza blok mnogiej wartości w YAML, więc nowe linie są zachowywane w rezultacie pliku konfiguracyjnego.
apache_vhosts_ssl: []
Domyślnie nie ma skonfigurowanych wirtualnych hostów SSL, ale możesz je dodać używając tego samego wzoru co apache_vhosts
, z kilkoma dodatkowymi dyrektywami:
apache_vhosts_ssl:
- servername: 'local.dev',
certificate_file: '/path/to/certificate.crt'
certificate_key_file: '/path/to/certificate.key'
certificate_chain_file: '/path/to/certificate_chain.crt'
sts: true
sts_max_age: '63072000'
sts_subdomains: true
redirect_to_http: false
Te pierwsze trzy właściwości ustawiają ścieżki certyfikatów. Następne trzy pozwalają na nadpisanie globalnej konfiguracji STS. Ostatnia przekierowuje wszystkie żądania do hosta HTTP.
apache_vhosts_ordered: False
Ta właściwość wymusza, aby Apache załadował wirtualne hosty w kolejności, w jakiej występują na liście apache_vhosts
i apache_vhosts_ssl
. W przeciwnym razie Apache przetwarza pliki konfiguracyjne alfabetycznie.
Inne dyrektywy SSL mogą być zarządzane za pomocą innych zmiennych związanych z SSL.
apache_ssl_protocol: 'Wszystkie -SSLv2 -SSLv3'
apache_ssl_cipher_suite: 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'
Protokóły SSL i zestawy szyfrów, które są używane / dozwolone, gdy klienci łączą się bezpiecznie z Twoim serwerem. To są bezpieczne i rozsądne domyślne ustawienia, ale dla maksymalnego bezpieczeństwa, wydajności lub kompatybilności, możesz potrzebować dostosować te ustawienia. Możesz znaleźć dodatkowe informacje na stronie Cipherli.st: Strong Ciphers for Apache, nginx and Lighttpd.
apache_frame_options: SAMEORIGIN
Ta właściwość ustawia politykę bezpieczeństwa stron, gdy są ładowane w ramach Frame lub IFrame. Możesz sprawdzić dostępne opcje w tym artykule Wikipedii. Możesz również użyć False
lub no
, aby pominąć ustawienie nagłówka zupełnie. Ta globalna konfiguracja może być nadpisana dla każdego wirtualnego hosta.
apache_sts: true
apache_sts_max_age: '63072000'
apache_sts_subdomains: true
HTTP Strict Transport Security jest domyślnie włączone, z czasem Max Age wynoszącym 1 rok, a subdomeny są wliczane. Te globalne konfiguracje mogą być nadpisywane dla każdego wirtualnego hosta.
apache_mods_enabled:
- rewrite
- ssl
apache_mods_disabled: []
Te właściwości dotyczą TYLKO Debiana i Ubuntu. Jakie moduły Apache włączyć lub wyłączyć. Zobacz katalog mods-available
wewnątrz katalogu konfiguracyjnego Apache (/etc/apache2/mods-available
domyślnie) w celu zapoznania się ze wszystkimi dostępnymi modułami.
apache_packages:
- [specyficzne dla platformy]
Lista pakietów do zainstalowania. Domyślnie jest to zestaw pakietów specyficznych dla platformy dla systemów RedHat lub Debian (patrz vars/RedHat.yml
i vars/Debian.yml
dla wartości domyślnych).
apache_state: started
Ustaw początkowy stan demona Apache, który ma być wymuszany podczas uruchamiania tej roli. Generalnie powinno to pozostać started
, ale możesz ustawić to na stopped
, jeśli musisz naprawić konfigurację Apache podczas uruchamiania playbooka lub w przypadku, gdy nie chcesz, aby Apache był uruchomiony w momencie, gdy ta rola jest uruchamiana.
apache_ignore_missing_ssl_certificate: true
Jeśli chcesz tworzyć wirtualne hosty SSL tylko wtedy, gdy certyfikat hosta wirtualnego jest obecny (np. korzystając z Let’s Encrypt), ustaw apache_ignore_missing_ssl_certificate
na false
. W takim przypadku możesz potrzebować uruchomić swój playbook więcej niż raz, aby skonfigurować wszystkie wirtualne hosty (jeśli inna część playbooka generuje certyfikaty SSL).
Zależności
Brak.
Przykładowy Playbook
- hosts: webservers
vars_files:
- vars/main.yml
roles:
- gcoop-libre.apache
W pliku vars/main.yml
:
apache_listen_port: 8080
apache_vhosts:
- servername: example.com
Licencja
GPLv2
Informacje o autorze
Ta rola została stworzona w 2016 roku przez gcoop Cooperativa de Software Libre.
ansible-galaxy install gcoop-libre.apache