Huomio:
Tätä konfiguraatiota käytettiin tutkimuksessa, jossa mitattiin kolmen vapaan ohjelmiston HTTP-kiihdyttimen suorituskykyä staattisten ja dynaamisten verkkosivusisältöjen tarjoamisessa.
Konfiguraatio ei ole tarkoitettu sellaisenaan suoraan käyttöönotettavaksi jo olemassa olevaan ympäristöön. Älä siis kopioi huolimattomasti tätä tuotantoon, vaan kokeile ensin testiympäristössä.
Tutkimuksen tarkemmat tiedot löytyvät tästä artikkelista:
Vapaan ohjelmiston HTTP-kiihdyttimien vaikutus verkkosivujen suorituskykyyn (Varnish, Squid, Nginx)
Seuraavat komennot suoritettiin terminaalissa:
sudo apt update sudo apt upgrade sudo ufw allow 80/tcp sudo ufw allow 8080/tcp sudo ufw enable sudo apt install apache2 sudo a2enmod userdir sudo systemctl restart apache2 cd mkdir public_html cd public_html mkdir static mkdir dynamic cd /etc/apache2/sites-available/ sudo cp 000-default.conf markus.conf sudoedit markus.conf sudo a2dissite 000-default.conf sudo a2ensite markus.conf sudo systemctl reload apache2 sudo systemctl restart apache2 sudo apt install php7.2 libapache2-mod-php7.2 php7.2-mysql sudoedit /etc/apache2/mods-available/php7.2.conf sudo systemctl restart apache2 sudo apt install php7.2-fpm sudo a2enmod proxy_fcgi sudo systemctl restart apache2 cd /etc/php/7.2/fpm/pool.d/ sudo nano markus.conf sudo systemctl restart php7.2-fpm.service cd /etc/apache2/sites-available/ sudoedit markus.conf sudo systemctl restart apache2 sudo apt install mariadb-client mariadb-server sudo mysql_secure_installation sudo mariadb -u root -p SHOW DATABASES; CREATE DATABASE wordpress; GRANT ALL ON wordpress.* TO markuswp@localhost IDENTIFIED BY 'password'; exit wget https://wordpress.org/latest.tar.gz tar xzvf latest.tar.gz rm latest.tar.gz cd wordpress cp wp-config-sample.php wp-config.php nano wp-config.php find /home/markus/public_html/static/ -type d -exec chmod 755 {} \; find /home/markus/public_html/static/ -type f -exec chmod 644 {} \; find /home/markus/public_html/dynamic/wordpress/ -type d -exec chmod 755 {} \; find /home/markus/public_html/dynamic/wordpress/ -type f -exec chmod 644 {} \; cd /etc/apache2/mods-available/ sudo a2dismod php7.2 sudo a2dismod mpm_prefork sudo a2enmod mpm_worker sudo systemctl restart apache2 sudoedit mpm_worker.conf sudo systemctl restart apache2
Apachen VirtualHost-konfiguraatio /etc/apache2/sites-available/markus.conf:
<VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /home/markus/public_html/dynamic/wordpress/ #DocumentRoot /home/markus/public_html/static/ <Directory /home/markus/public_html/dynamic/wordpress/> #<Directory /home/markus/public_html/static/> AllowOverride All Require all granted Options -Indexes </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php7.2-fpm-markus.sock|fcgi://localhost/" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Apachen /etc/apache2/ports.conf:
#NameVirtualHost *:8080 Listen 8080 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
Apache-moduulin /etc/apache2/mods-available/mpm_worker.conf määritykset:
<IfModule mpm_worker_module> ServerLimit 40 StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxRequestWorkers 1000 MaxConnectionsPerChild 0 </IfModule>
PHP-FPM konfiguraatio /etc/php/7.2/fpm/pool.d/markus.conf:
[markus] user = markus group = markus listen = /var/run/php/php7.2-fpm-markus.sock listen.owner = www-data listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3