Macchine Linux Mr.Digital: differenze tra le versioni
| Riga 50: | Riga 50: | ||
Al momento si pone di fronte al solo '''Designbest'''. | Al momento si pone di fronte al solo '''Designbest'''. | ||
=== Configurazione Virtual Host === | === NGINX === | ||
==== Configurazione Virtual Host ==== | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Riga 168: | Riga 169: | ||
* https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/<br/> | * https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/<br/> | ||
=== Protocollo http2 === | ==== Protocollo http2 ==== | ||
Il nuovo <code>nginx</code> supporta nativamente il protocollo <code>http2</code>.<br/> | Il nuovo <code>nginx</code> supporta nativamente il protocollo <code>http2</code>.<br/> | ||
Basta aggiungere <code>http2</code> dietro all'istruzione <code>listen 443 ssl</code> | Basta aggiungere <code>http2</code> dietro all'istruzione <code>listen 443 ssl</code> | ||
| Riga 175: | Riga 176: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Compressione Brotli === | ==== Compressione Brotli ==== | ||
La nuova compressione che va a sostituire la classica <code>gzip</code> <br/> | La nuova compressione che va a sostituire la classica <code>gzip</code> <br/> | ||
è stata approfondita nell'apposito paragrafo [[Nginx modulo Brotli (text compression)]] | è stata approfondita nell'apposito paragrafo [[Nginx modulo Brotli (text compression)]] | ||
Versione delle 14:58, 15 feb 2024
Le nostre macchine Linux sono
MERIDAMULANPOCAHONTASJARVISULTRON
Merida
Ospita i mini siti e tutte le istanze Wordpress di Designbest (webmobili, magazine, outlet).
Manutenzione
Al momento esegue una Debian 12.
Multiple versioni di PHP
A causa della presenza di diversi siti, la macchina può eseguire diverse versioni di PHP, tramite PHP FPM
PHP FPM - Configurare multiple versioni di PHP.
Ad esempio,
- al momento (febbraio 2024) Wordpress non è ancora pronto ad accogliere pienamente PHP8, ma solo PHP7.4 (fonte)
- il programma dei rimborsi è stato fatto in PHP5 e non guarisce più.
A causa dei limiti di Wordpress, abbiamo configurato Apache per l'utilizzo di PHP 7.4 di default.
Configurazione PHP per Wordpress
A causa della presenza di più istanze Wordpress abbiamo convenuto di modificare i valori di /etc/php/7.4/fpm/php.ini nel seguente modo
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 900
max_input_vars = 5000
memory_limit = 2048M
max_input_time = 400
Problema PhpMyAdmin
Siccome abbiamo impostato Apache che utilizzi di default la versione PHP7.4,
Quando si installa phpmyadmin su Debian 12, ovviamente è impostato per funzionare con PHP8 e quindi restituisce un errore 500.
Per rimediare al bug bisogna andare nel file di configurazione a dirgli di utilizzare la versione 8 invece di usare la default.
Editare /etc/apache2/conf-avalaible/phpmyadmin.conf e aggiungere queste righe all'interno di <Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
</FilesMatch>
Mulan
È un reverse-proxy che ha il compito di controllare il flusso delle richieste gestendo eventuali attacchi DDOS prima di passare la palla ad IIS sulla macchina ARIEL.
Oltre a questo si occupa della compressione e caching delle risorse.
Al momento si pone di fronte al solo Designbest.
NGINX
Configurazione Virtual Host
upstream www.designbest.com {
server 192.168.250.10:443;
}
upstream designbest.com {
server 192.168.250.10:80;
}
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
##
# DESIGNBEST.COM
#
# Porta 80, forwardo e lascio gestire redirect da IIS
server {
listen 80;
server_name designbest.com www.designbest.com;
#access_log /var/log/nginx/dbdemo47.com/access.log;
error_log /var/log/nginx/designbest.com/error.log;
location ~ ^/(it|fr|de|en) {
limit_req zone=mylimit burst=20 nodelay;
proxy_pass http://designbest.com;
include /etc/nginx/proxy_params;
limit_req_status 429;
}
location / {
proxy_pass http://designbest.com;
include /etc/nginx/proxy_params;
}
}
# Porta 443
server {
if ($host = designbest.com) {
return 301 https://www.$host$request_uri;
}
listen 443 ssl http2;
listen [::]:443 ssl http2;
index index.html index.htm index.nginx-debian.html;
server_name designbest.com www.designbest.com;
# upload che di default è 1M
client_max_body_size 100M;
ssl_certificate /etc/nginx/ssl/designbest.com_ssl_certificate_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/designbest.com_private_key.key;
error_log /var/log/nginx/designbest.com/error.log;
#access_log /var/log/nginx/designbest.com/access.log;
location ~ ^/(it|fr|de|en) {
limit_req zone=mylimit burst=20 nodelay;
proxy_ssl_server_name on;
proxy_pass https://www.designbest.com;
include /etc/nginx/proxy_params;
limit_req_status 429;
}
location / {
proxy_ssl_server_name on;
proxy_pass https://www.designbest.com;
include /etc/nginx/proxy_params;
}
}
##
# IMMAGINI.DESIGNBEST.COM
#
server {
# SSL configuration
#
listen 443 ssl;
listen [::]:443 ssl;
#root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name immagini.designbest.com;
ssl_certificate /etc/nginx/ssl/designbest.com_ssl_certificate_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/designbest.com_private_key.key;
error_log /var/log/nginx/immagini.designbest.com/error.log;
#access_log /media/discodati/logs/immagini.designbest.com/access.log;
location ~ ^/(it|fr|de|en) {
limit_req zone=mylimit burst=20 nodelay;
proxy_ssl_server_name on;
proxy_pass https://www.designbest.com;
include /etc/nginx/proxy_params;
limit_req_status 429;
}
location / {
proxy_ssl_server_name on;
proxy_pass https://www.designbest.com;
include /etc/nginx/proxy_params;
}
}
Questa guida mostra come NGINX può integrare il controllo del flusso.
- https://www.nginx.com/blog/rate-limiting-nginx/
- https://www.youtube.com/watch?v=V9XGT7hvwWo
- https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/
Protocollo http2
Il nuovo nginx supporta nativamente il protocollo http2.
Basta aggiungere http2 dietro all'istruzione listen 443 ssl
listen 443 ssl http2;
Compressione Brotli
La nuova compressione che va a sostituire la classica gzip
è stata approfondita nell'apposito paragrafo Nginx modulo Brotli (text compression)