Wir haben Nginx unter Ubuntu Trusty. Es bedient mehrere Websites über https, die unter einer IP-Adresse ausgeführt werden.
Zufällig werden einzelne Anforderungen auf dem falschen vhost angezeigt, obwohl dies in geringem Zusammenhang mit der Arbeitslast zu stehen scheint. Dies führt zu Anfragen nach lustrum.thalia.nu
Zustellung durch thalia.nu
und umgekehrt. Dies führt dann zu bösen Fehlerseiten, da Benutzer plötzlich auf einer anderen Website landen. Wenn Sie drücken F5, landen die Benutzer wieder auf dem ursprünglichen Ziel.
Es scheint nicht mit dem Browser oder dem Betriebssystem zu tun zu haben. Es wurde bestätigt, dass dies unter Firefox (Linux, Windows, Mac), Edge (Windows) und Chrome (Linux, Windows, Android) und Safari (iOS) geschieht.
Das Problem scheint häufiger aufzutreten, wenn das System unter Last gesetzt wird, was auf eine Art Rennbedingung hindeutet.
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;
}
}
Wie Sie sehen können, führen wir für diese beiden Domänen unterschiedliche PHP5-FPM-Pools aus. Diese Pools werden in verschiedenen Ordnern gespeichert und als verschiedene Benutzer ausgeführt. Die Konfiguration von PHP-FPM ist ansonsten, soweit ich das beurteilen kann, ziemlich Standard.
Wir haben sowohl nginx 1.4.6-ubuntu3 als auch nginx 1.8.0-1 + vertrauenswürdig ausprobiert.
Protokolltelemetrie
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 dieser Zeile sehen Sie, dass die Anforderung für die Seite /committees
plötzlich umgeleitet wird wp-admin
. Dies scheint, dass die Anfrage für /committees
vom thalia-lustrum
PHP-fpm-Pool bearbeitet wurde ...
DNS-Zonendatei
Wir sehen nicht, wie dies möglicherweise relevant sein kann, aber ...
;; 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-Headers und des Benutzeragenten hinzufügen ? Hier erfahren Sie, wie: serverfault.com/questions/636790/… . Eigentlich habe ich versucht, einige Anfragen an Ihre Websites zu stellen, aber Ihr Problem konnte nicht reproduziert werden. Welchen Client verwenden Sie, um dies zu reproduzieren?
config.php
nicht gefunden bekommen.