Macchine Linux Mr.Digital
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/
Testing con Apache Bench
Suppose we want to see how fast Yahoo can handle 100 requests, with a maximum of 10 requests running concurrently:
ab -n 100 -c 10 -l http://www.yahoo.com/
Nota bene: Se non si mette l'ultimo slash (/) il comando non funziona. https://www.petefreitag.com/item/689.cfm
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)
JARVIS
Jarvis è il Raspberry aziendale che si occupa di fornire i seguenti servizi:
- SVN Server per lo sviluppo
- VPN Server per il lavoro in Smart-Working
- DNS Server interno per i domini di sviluppo (es
svn.office.webmobili.it - ariel.office.webmobili.it ...)
Monta il sistema operativo Raspbian basato su Debian 11.
Upgrade Debian 10 to Debian 11
Dopo l'upgrade alla nuova versione, Raspbian perde completamente i riferimenti alla rete ethernet perché una configurazione di sistema cambia cartella ma l'update non ne tiene conto
Seguita questa guida dopo aver finito le bestemmie perché dopo il riavvio non vedete più in rete il Raspberry.
sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
e da
[Service]
ExecStart=
ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -wcambiare in
[Service]
ExecStart=
ExecStart=/usr/sbin/dhcpcd -q -wE riavviare
Esiste una micro SD con un backup di una versione funzionante di Debian 11 aggiornata al 22 dicembre 2021, dovrebbe essere attaccata con lo scotch sul Raspberry ☠.