Abbiamo nginx in esecuzione su Ubuntu Trusty. Serve diversi siti Web su HTTPS, in esecuzione su un indirizzo IP.
Casualmente, anche se sembra leggermente correlato al carico di lavoro, a volte le singole richieste vengono visualizzate nel vhost errato. Questo porta a richieste di lustrum.thalia.nu
essere servite da thalia.nu
e viceversa. Questo dà quindi brutte pagine di errore quando gli utenti finiscono improvvisamente su un sito Web diverso. Quando si preme F5, gli utenti finiscono di nuovo sul target originale.
Non sembra correlato al browser o al sistema operativo. È stato confermato che si verifica su Firefox (Linux, Windows, Mac), Edge (Windows) e Chrome (Linux, Windows, Android) e Safari (iOS).
Il problema sembra verificarsi più frequentemente quando il sistema viene caricato, suggerendo una sorta di condizione di gara.
lustrum.thalia.nu
server {
server_name lustrum.thalia.nu;
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt;
ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key;
add_header Strict-Transport-Security "max-age=63072000; preload";
root /var/www/thalia-lustrum/public_html;
location / {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# Pass all .php files onto a php-fpm/php-fcgi server.
location ~ [^/]\.php(/|$) {
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/var/run/php5-fpm-thalia-lustrum.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /public_html$fastcgi_script_name;
}
}
thalia.nu
server {
server_name thalia.nu;
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/certs/www.thalia.nu.crt;
ssl_certificate_key /etc/nginx/certs/www.thalia.nu.key;
add_header Strict-Transport-Security "max-age=63072000; preload";
root /var/www/thalia/public_html;
location / {
try_files $uri $uri/ /index.php/$request_uri;
index index.php index.html index.htm;
}
location ~ \.php($|/) {
include /etc/nginx/fastcgi_params;
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_read_timeout 120;
fastcgi_pass unix:/var/run/php5-fpm-thalia-www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /public_html$fastcgi_script_name;
}
}
Come puoi vedere, stiamo eseguendo diversi pool PHP5-FPM per questi due domini. Questi pool vengono sottoposti a chroot in cartelle diverse ed eseguiti come utenti diversi. Per il resto, la configurazione di PHP-FPM è abbastanza standard.
Abbiamo provato sia nginx 1.4.6-ubuntu3 che nginx 1.8.0-1 + fidato.
Log telemetria
266.266.266.266 - - [25/Nov/2015:09:24:40 +0100] "GET /committees/175 HTTP/1.1" 302 5 "https://thalia.nu/committees" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0" Host: "thalia.nu" Location: "https://thalia.nu/index.php//committees/wp-admin/setup-config.php"
In questa riga puoi vedere che la richiesta per la pagina /committees
viene reindirizzata all'improvviso wp-admin
. Sembra che la richiesta sia /committees
stata gestita dal thalia-lustrum
pool PHP-fpm ...
File di zona DNS
Non vediamo come questo possa eventualmente essere rilevante, ma ...
;; MX Records
thalia.nu. 300 IN MX 20 relay.transip.nl.
thalia.nu. 300 IN MX 10 ivo.thalia.nu.
;; TXT Records
thalia.nu. 300 IN TXT "v=spf1 a mx a:mulgore.hexon-is.nl a:moonray.hexon-is.nl a:fred.thalia.nu a:ivo.thalia.nu ~all"
;; SPF Records (Sender Policy Framework)
thalia.nu. 300 IN SPF "v=spf1 a mx a:mulgore.hexon-is.nl a:moonray.hexon-is.nl a:fred.thalia.nu a:ivo.thalia.nu ~all"
;; CNAME Records
lustrum.thalia.nu. 300 IN CNAME thalia.nu.
;; A Records (IPv4 addresses)
thalia.nu. 300 IN A 131.174.31.8
www.thalia.nu. 300 IN A 131.174.31.8
ivo.thalia.nu. 300 IN A 131.174.31.8
Host:
http e dell'agente utente? Vedi qui per come: serverfault.com/questions/636790/… . In realtà ho provato a fare alcune richieste ai tuoi siti web ma non sono riuscito a riprodurre il tuo problema. Quale client stai usando per riprodurre questo?
config.php
non trovato.