Macchine Linux Mr.Digital: differenze tra le versioni
Nessun oggetto della modifica |
|||
| Riga 42: | Riga 42: | ||
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost" | SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost" | ||
</FilesMatch> | </FilesMatch> | ||
</syntaxhighlight> | |||
== 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 <code>ARIEL</code>.<br/> | |||
Oltre a questo si occupa della '''compressione e caching delle risorse'''.<br/> | |||
Al momento si pone di fronte al solo '''Designbest'''. | |||
<syntaxhighlight lang="bash"> | |||
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; | |||
} | |||
# SSL configuration | |||
# | |||
listen 443 ssl http2; | |||
listen [::]:443 ssl http2; | |||
# | |||
# Self signed certs generated by the ssl-cert package | |||
# Don't use them in a production server! | |||
# | |||
# include snippets/snakeoil.conf; | |||
#root /var/www/html; | |||
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; | |||
# ssl_protocols TLSv1.2; | |||
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; | |||
} | |||
# Vecchia conf con Varnish | |||
# location / { | |||
# # First attempt to serve request as file, then | |||
# # as directory, then fall back to displaying a 404. | |||
# #try_files $uri $uri/ =404; | |||
# proxy_pass http://127.0.0.1:80; | |||
# proxy_set_header X-Real-IP $remote_addr; | |||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
# proxy_set_header X-Forwarded-Proto https; | |||
# proxy_set_header X-Forwarded-Port 443; | |||
# proxy_set_header Host $host; | |||
# } | |||
} | |||
## | |||
# 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; | |||
} | |||
#location / { | |||
# # Bypasso Varnish per evitare il supercaching | |||
# proxy_pass http://192.168.250.10:80; | |||
# proxy_set_header X-Real-IP $remote_addr; | |||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
# proxy_set_header X-Forwarded-Proto https; | |||
# proxy_set_header X-Forwarded-Port 443; | |||
# proxy_set_header Host $host; | |||
#} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Versione delle 14:40, 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.
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;
}
# SSL configuration
#
listen 443 ssl http2;
listen [::]:443 ssl http2;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
#root /var/www/html;
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;
# ssl_protocols TLSv1.2;
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;
}
# Vecchia conf con Varnish
# location / {
# # First attempt to serve request as file, then
# # as directory, then fall back to displaying a 404.
# #try_files $uri $uri/ =404;
# proxy_pass http://127.0.0.1:80;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header X-Forwarded-Port 443;
# proxy_set_header Host $host;
# }
}
##
# 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;
}
#location / {
# # Bypasso Varnish per evitare il supercaching
# proxy_pass http://192.168.250.10:80;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header X-Forwarded-Port 443;
# proxy_set_header Host $host;
#}
}