upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
Salin selepas log masuk
Arahan
Sintaks:
nama huluan { .. . }
语法:
upstream name { ... }
默认值:
—
上下文:
http
Nilai lalai:
—
Konteks:
http
Tentukan kumpulan pelayan. Pelayan ini boleh mendengar pada port yang berbeza. Tambahan pula, pelayan yang mendengar pada soket domain TCP dan UNIX boleh dicampur.
Contoh:
upstream backend {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
Salin selepas log masuk
Secara lalai, nginx mengedarkan permintaan kepada setiap pelayan dalam round robin berwajaran. Dalam contoh di atas, setiap 7 permintaan akan diedarkan mengikut cara berikut: 5 permintaan diedarkan ke backend1.example.com, 1 permintaan diedarkan ke pelayan kedua dan 1 permintaan diedarkan ke pelayan ketiga. Jika ralat berlaku semasa berkomunikasi dengan pelayan, permintaan akan dihantar ke pelayan seterusnya sehingga semua pelayan yang tersedia telah dicuba. Jika semua pelayan mengembalikan kegagalan, pelanggan akan mendapat respons (kegagalan) daripada pelayan terakhir yang berkomunikasi dengannya.
Syntax:
alamat pelayan [parameter];
语法:
server address [parameters];
默认值:
—
上下文:
upstream
< td>Nilai lalai:
—
Konteks:
upstream
< /table>
Tentukan alamat pelayan dan parameter lain. Alamat boleh menjadi nama domain atau alamat IP, dan port adalah pilihan, atau laluan ke soket domain unix yang menyatakan awalan "unix:". Jika tiada port dinyatakan, port 80 digunakan. Jika nama domain diselesaikan kepada berbilang IP, berbilang pelayan pada dasarnya ditakrifkan.
Anda boleh mentakrifkan parameter berikut: weight=number menetapkan berat pelayan Lalai ialah 1. max_fails=number menetapkan bilangan percubaan yang gagal oleh nginx untuk berkomunikasi dengan pelayan. Dalam tempoh masa yang ditentukan oleh parameter fail_timeout, jika bilangan kegagalan mencapai nilai ini, nginx akan menganggap pelayan tidak tersedia. Dalam tempoh fail_timeout seterusnya, pelayan tidak akan dicuba lagi. Bilangan percubaan yang gagal menjadi lalai kepada 1. Menetapkannya kepada 0 akan berhenti mengira percubaan dan menganggap pelayan sentiasa tersedia. Anda boleh mengkonfigurasi perkara yang dianggap sebagai percubaan yang gagal melalui arahan proxy_next_upstream, fastcgi_next_upstream dan memcached_next_upstream. Apabila dikonfigurasikan secara lalai, status http_404 tidak dianggap sebagai percubaan yang gagal. fail_timeout=masa ditetapkan
tempoh masa untuk mengira percubaan yang gagal. Dalam tempoh ini, jika pelayan gagal untuk bilangan percubaan yang ditentukan, pelayan dianggap tidak tersedia.
Tempoh masa di mana pelayan dianggap tidak tersedia.
Secara lalai, tamat masa ini ialah 10 saat. sandaran ditandakan sebagai pelayan sandaran. Apabila pelayan utama tidak tersedia, permintaan akan dihantar kepada pelayan ini. down menandakan pelayan sebagai tidak tersedia secara kekal dan boleh digunakan dengan arahan ip_hash.
contoh:
upstream backend {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
}
Salin selepas log masuk
Syntax:
ip_hash;
语法:
ip_hash;
默认值:
—
上下文:
upstream
Lalai:
—
Konteks:
huluan
< /tbody>
Nyatakan kaedah pengimbangan beban kumpulan pelayan dan permintaan diedarkan antara pelayan berdasarkan alamat IP pelanggan. Tiga bait pertama alamat IPv4, atau keseluruhan alamat IPv6, akan digunakan sebagai kunci cincang. Kaedah ini memastikan permintaan daripada klien yang sama akan dihantar ke pelayan yang sama. Kecuali apabila pelayan dianggap tidak tersedia, permintaan pelanggan ini akan dihantar ke pelayan lain, kemungkinan besar pelayan yang sama.
Menyokong alamat ipv6 bermula dari versi 1.3.2 dan 1.2.2.
Jika salah satu pelayan ingin dialih keluar buat sementara waktu, parameter bawah perlu ditambah. Ini mengekalkan pengedaran cincang alamat IP klien semasa.
Contoh:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
server backend4.example.com;
}
Salin selepas log masuk
Bermula dari versi 1.3.1 dan 1.2.2, kaedah pengimbangan beban ip_hash hanya menyokong penetapan nilai berat pelayan.
Atas ialah kandungan terperinci Apakah konfigurasi huluan dan fungsi nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn