Nous avons nginx en cours d'exécution sur Ubuntu Trusty. Il dessert plusieurs sites Web via https, fonctionnant sur une seule adresse IP.
Au hasard, bien que cela semble légèrement lié à la charge de travail, des requêtes uniques se présentent parfois sur le mauvais vhost. Cela conduit à des demandes d' lustrum.thalia.nu
être servi par thalia.nu
et vice-versa. Cela donne alors des pages d'erreur désagréables car les utilisateurs se retrouvent soudainement sur un site Web différent. Lorsque vous appuyez sur F5, les utilisateurs se retrouvent à nouveau sur la cible d'origine.
Il ne semble pas lié au navigateur ou au système d'exploitation. Il a été confirmé que cela se produisait sur Firefox (Linux, Windows, Mac), Edge (Windows) et Chrome (Linux, Windows, Android) et Safari (iOS).
Le problème semble se produire plus fréquemment lorsque le système est mis sous charge, ce qui suggère une sorte de condition de concurrence.
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;
}
}
Comme vous pouvez le voir, nous exécutons différents pools PHP5-FPM pour ces deux domaines. Ces pools sont chrootés dans différents dossiers et s'exécutent en tant qu'utilisateurs différents. La configuration de PHP-FPM est par ailleurs assez standard pour autant que je sache.
Nous avons essayé nginx 1.4.6-ubuntu3 et nginx 1.8.0-1 + trusty.
Télémétrie des journaux
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"
Sur cette ligne, vous pouvez voir que la demande de page est /committees
soudainement redirigée vers wp-admin
. Il semble que la demande de /committees
soit traitée par le thalia-lustrum
pool PHP-fpm ...
Fichier de zone DNS
Nous ne voyons pas en quoi cela peut être pertinent, mais ...
;; 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:
tête http et de l'agent utilisateur? Voir ici pour savoir comment: serverfault.com/questions/636790/… . En fait, j'ai essayé de faire des demandes à vos sites Web, mais je ne pouvais pas reproduire votre problème. Quel client utilisez-vous pour reproduire cela?
config.php
introuvable.