Rumah > Artikel > Operasi dan penyelenggaraan > Apakah konfigurasi huluan dan fungsi nginx?
Contoh konfigurasi
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; } }
Arahan
Sintaks: | nama huluan { .. . }
|
||||||
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; }
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];
|
||||||
— | |||||||
Konteks: | upstream |
Syntax: | ip_hash;
|
||||||
Lalai: | — | ||||||
Konteks: | huluan |
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; }
Bermula dari versi 1.3.1 dan 1.2.2, kaedah pengimbangan beban ip_hash hanya menyokong penetapan nilai berat pelayan.
Syntax: | keepalive connections;
|
||||||
— | |||||||
Konteks: | upstream |
语法: | least_conn; |
默认值: | — |
上下文: | upstream |
这个指令出现在版本 1.3.1 和 1.2.2.
指定服务器组的负载均衡方法,根据其权重值,将请求发送到活跃连接数最少的那台服务器。 如果这样的服务器有多台,那就采取有权重的轮转法进行尝试。
嵌入的变量
ngx_http_upstream_module模块支持以下嵌入变量:
$upstream_addr保存服务器的ip地址和端口或者是unix域套接字的路径。 在请求处理过程中,如果有多台服务器被尝试了,它们的地址会被拼接起来,以逗号隔开,比如: “192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock”。 如果在服务器之间通过“x-accel-redirect”头或者error_page有内部跳转,那么这些服务器组之间会以冒号隔开,比如:“192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80”。$upstream_response_time以毫秒的精度保留服务器的响应时间,(输出)单位是秒。 出现多个响应时,也是以逗号和冒号隔开。$upstream_status保存服务器的响应代码。 出现多个响应时,也是以逗号和冒号隔开。$upstream_http_...保存服务器的响应头的值。比如“server”响应头的值可以通过$upstream_http_server变量来获取。 需要注意的是只有最后一个响应的头会被保留下来。
Atas ialah kandungan terperinci Apakah konfigurasi huluan dan fungsi nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!