Il server Web serve casualmente vari vhost

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, talvolta le richieste singole si manifestano sul vhost sbagliato. Ciò port a richieste su lustrum.thalia.nu essere serviti da thalia.nu e viceversa. Questo dà poi pagine di errori brutto perché gli utenti finiscono improvvisamente su un sito web diverso. Quando si preme F5 , gli utenti tornano all'objective originale.

  • Eseguire due server http, ma legarsi a diverse interfacce?
  • Quale tipo di SSL ho bisogno per questa configuration vhost?
  • Heartbleed, quali servizi specifici devono essere riavviati?
  • C'è un modo per avanzare dynamicmente i sottodomini in NGINX?
  • applicando ssl per i sottodomini
  • phpmyadmin che ha problemi su nginx e php-fpm su RHEL 6
  • Non sembra che il browser o il sistema operativo siano correlati. È stato confermato che su Firefox (Linux, Windows, Mac), Edge (Windows) e Chrome (Linux, Windows, Android) e Safari (iOS).

    Il problema sembra accadere più frequentemente quando il sistema viene messo sotto carico, 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 potete vedere, stiamo eseguendo diverse piscine PHP5-FPM per questi due domini. Queste piscine vengono chrootate in cartelle diverse e vengono eseguite come utenti diversi. La configuration di PHP-FPM è altrimenti abbastanza standard per quanto posso dirlo.

    Abbiamo provato sia nginx 1.4.6-ubuntu3 che nginx 1.8.0-1 + affidabili.

    Telemetria del log

     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 row si può vedere che la richiesta per la pagina /committees viene improvvisamente reindirizzata a wp-admin . Ciò sembra che la richiesta per /committees stata gestita dal thalia-lustrum PHP-fpm …

    File di zona DNS

    Non vediamo come questo possa 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 

  • C'è qualche altro motivo per "non rimanere spazio sul dispositivo"?
  • C'è un vantaggio per utilizzare NGINX per il proxy inverso rispetto al proxying incorporato di Tomcat?
  • Quando è appropriato / prudente usare chroot?
  • Linux; Che cos'è lo stripe_cache_size e cosa fa?
  • Limitare le connessioni simultanee per IP con Apache2
  • Applicazione di Django App con Nginx, Apache, mod_wsgi
  • 3 Solutions collect form web for “Il server Web serve casualmente vari vhost”

    Dopo ore di debug di questo problema siamo finalmente riusciti a rintracciarlo alla causa. Sembra che la causa non sia nginx , ma PHP-fpm. Stiamo eseguendo php5-fpm versione 5.5.9-1ubuntu4.14 . Sembra che quando si forzino nuovi lavoratori, qualcosa a volte va storto e i lavoratori eseguono (parte?) Del codice di lavoratori diversi.

    La nostra soluzione era quella di copiare /etc/php5/fpm/php5-fpm.conf su copie diverse con le proprie cartelle pool.d , quindi copiare /etc/init.d/php5-fpm per lanciare con il nuovo file di configuration (anche creazione di file in /etc/init/ ). Ciò significa che abbiamo ora un gestore di processi php5-fpm per pool. Avere separato le chiacchiere e le prese non sembrano mantenere le cose abbastanza separate.

    Nginx support SNI? È ansible eseguire nginx -V e dovrebbe vedere qualcosa come supporto TLS SNI abilitato. Se non lo fai, forse perché il nome host viene inviato dopo la stretta di mano e suppongo di avere un certificato wildcard per * .thalia.nu

    Sembra che il certificato non sia giusto: firefox mi sta dicendo che viene rilasciato per http://www.thalia.nu, non thalia.nu.

    Questo è IMHO ciò che sta causando problemi. Provare con un altro certificato o provare ad triggersre le connessioni HTTP senza SSL.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.