Włączenie obsługi nagłówków, HTTP/2, PHP, mpm_event:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event proxy_fcgi setenvif headers http2
sudo a2enconf php8.4-fpm
Cache ikon listingu:
W /etc/apache2/mods-enabled/autoindex.conf dopisać:
Header set Cache-Control "max-age=15552000, public"
W /etc/php/8.4/fpm/php.ini:
W sekcji [Date] odpowiednio ustawić date.timezone, date.default_latitude i date.default_longitude.
Po instalacji/włączeniu mysqli należy ustawić mysqli.allow_persistent = off
Konfiguracja mpm_event (/etc/apache2/mods-enabled/mpm_event.conf):
StartServers - Ilość procesów na start
ThreadsPerChild - Limit wątków na proces na start (wartość powinna równa być ThreadLimit)
MinSpareThreads - Najmniejsza ilość wątków podczas bezczynności
MaxSpareThreads - Największa ilość wątków podczas bezczynności
ServerLimit - Limit procesów serwera
ThreadLimit - Limit wątków procesu
MaxRequestWorkers - Maksymalna ilość połączeń jednoczesnych
MaxConnectionsPerChild - Maksymalna ilość połączeń jednoczesnych na jeden proces
MaxSpareThreads >= MinSpareThreads + ThreadsPerChild
ThreadsPerChild <= ThreadLimit
MaxRequestWorkers <= ServerLimit * ThreadsPerChild
Przykład na 500 równoczesnych połączeń w 2 procesach:
StartServers 1
ThreadsPerChild 250
MinSpareThreads 1
MaxSpareThreads 5
ServerLimit 2
ThreadLimit 250
MaxRequestWorkers 500
MaxConnectionsPerChild 250
KeepAlive Off
Skrypty przekierowań HTTPS oraz selekcji domeny:
Wszystkie www.* na *, oraz sprawdź aliasy:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
Redirect 404 /