Kami menjalankan nginx di Ubuntu Trusty. Ini melayani beberapa situs web melalui https, berjalan pada satu alamat ip.
Secara acak, meskipun tampaknya sedikit terkait dengan beban kerja, kadang-kadang satu permintaan muncul di vhost yang salah. Ini mengarah pada permintaan untuk lustrum.thalia.nu
dilayani oleh thalia.nu
dan sebaliknya. Ini kemudian memberikan halaman kesalahan yang buruk karena pengguna tiba-tiba berakhir di situs web yang berbeda. Saat Anda menekan F5, pengguna kemudian berakhir pada target asli lagi.
Tampaknya tidak terkait browser atau sistem operasi. Sudah dikonfirmasi untuk terjadi di Firefox (Linux, Windows, Mac), Edge (Windows) dan Chrome (Linux, Windows, Android) dan Safari (iOS).
Masalah ini muncul lebih sering terjadi ketika sistem berada di bawah beban, menunjukkan semacam kondisi balapan.
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;
}
}
Seperti yang Anda lihat, kami menjalankan kumpulan PHP5-FPM yang berbeda untuk kedua domain ini. Kumpulan ini chroot ke folder yang berbeda dan dijalankan sebagai pengguna yang berbeda. Konfigurasi PHP-FPM sebaliknya cukup standar sejauh yang saya tahu.
Kami telah mencoba nginx 1.4.6-ubuntu3 dan nginx 1.8.0-1 + trusty.
Log telemetri
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"
Di baris ini Anda dapat melihat bahwa permintaan halaman /committees
tiba-tiba dialihkan ke wp-admin
. Tampaknya permintaan untuk /committees
ditangani oleh thalia-lustrum
kumpulan PHP-fpm ...
File zona DNS
Kami tidak melihat bagaimana ini mungkin relevan, tetapi ...
;; 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:
header http dan agen pengguna? Lihat di sini untuk caranya: serverfault.com/questions/636790/… . Sebenarnya saya mencoba membuat beberapa permintaan ke situs web Anda tetapi tidak mereproduksi masalah Anda. Klien apa yang Anda gunakan untuk mereproduksi ini?config.php
tidak ditemukan.Jawaban:
Setelah berjam-jam men-debug masalah ini, kami akhirnya dapat melacaknya sampai ke penyebabnya. Tampaknya penyebabnya bukan
nginx
, tetapi PHP-fpm. Kami sedang menjalankanphp5-fpm
versi5.5.9-1ubuntu4.14
. Tampaknya ketika mencari pekerja baru, kadang-kadang ada yang salah dan pekerja menjalankan (bagian?) Dari kode pekerja yang berbeda.Solusi kami adalah menyalin
/etc/php5/fpm/php5-fpm.conf
ke berbagai salinan denganpool.d
folder mereka sendiri , kemudian menyalin/etc/init.d/php5-fpm
untuk memulai dengan file konfigurasi baru (juga membuat file di/etc/init/
). Ini berarti kami sekarang memilikiphp5-fpm
manajer proses per kelompok. Memiliki chroot dan soket yang terpisah tampaknya tidak membuat hal-hal cukup terpisah.sumber
Saya menghadapi masalah yang sama tetapi pada Debian dengan Apache2.4.25 dan PHP7.1-FPM. Berikut adalah cara untuk memisahkan proses https://ma.ttias.be/a-better-way-to-run-php-fpm/
Bagi mereka seperti saya yang mungkin menganggap solusi ini terlalu berat untuk situs web kecil, tambahkan
php_admin_value[opcache.revalidate_freq] = 0
di akhir file konfigurasi kumpulan php-fpm. Namun, itu mungkin berdampak serius pada kinerja ...Berikut adalah laporan bug resmi: https://bugs.php.net/bug.php?id=67141
sumber
Apakah Nginx mendukung SNI? Anda dapat menjalankan nginx -V dan akan melihat sesuatu seperti dukungan TLS SNI diaktifkan. Jika tidak, mungkin itulah sebabnya karena nama host dikirim setelah jabat tangan dan saya berasumsi Anda memiliki sertifikat wildcard untuk * .thalia.nu
sumber
Tampaknya sertifikat itu tidak benar: firefox memberi tahu saya bahwa sertifikat ini dikeluarkan untuk www.thalia.nu, bukan thalia.nu.
Ini adalah IMHO yang menyebabkan masalah. Coba dengan sertifikat lain atau coba aktifkan koneksi HTTP tanpa SSL.
sumber
www.thalia.nu
danthalia.nu
mencakup kedua domain, dengan dan tanpa domainwww
. Versi Firefox apa yang Anda gunakan, dan pada platform apa?