cari
RumahOperasi dan penyelenggaraanNginxApakah 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 { .. . }
语法: 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;
}

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.

Nilai lalai:

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;
}
Syntax: alamat pelayan [parameter];
语法: server address [parameters];
 
默认值:
上下文: upstream
Konteks: upstream
Syntax: ip_hash;
语法: ip_hash;
 
默认值:
上下文: upstream
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.

Nilai lalai:

这个指令出现在版本 1.1.4.

激活对上游服务器的连接进行缓存。

connections参数设置每个worker进程与后端服务器保持连接的最大数量。这些保持的连接会被放入缓存。 如果连接数大于这个值时,最久未使用的连接会被关闭。

需要注意的是,keepalive指令不会限制nginx进程与上游服务器的连接总数。 新的连接总会按需被创建。 connections参数应该稍微设低一点,以便上游服务器也能处理额外新进来的连接。

配置memcached上游服务器连接keepalive的例子:

upstream memcached_backend {
  server 127.0.0.1:11211;
  server 10.0.0.2:11211;

  keepalive 32;
}

server {
  ...

  location /memcached/ {
    set $memcached_key $uri;
    memcached_pass memcached_backend;
  }

}

对于http代理,proxy_http_version指令应该设置为“1.1”,同时“connection”头的值也应被清空。

upstream http_backend {
  server 127.0.0.1:8080;

  keepalive 16;
}

server {
  ...

  location /http/ {
    proxy_pass http://http_backend;
    proxy_http_version 1.1;
    proxy_set_header connection "";
    ...
  }
}

另外一种选择是,http/1.0协议的持久连接也可以通过发送“connection: keep-alive”头来实现。不过不建议这样用。

对于fastcgi的服务器,需要设置 fastcgi_keep_conn 指令来让连接keepalive工作:

upstream fastcgi_backend {
  server 127.0.0.1:9000;

  keepalive 8;
}

server {
  ...

  location /fastcgi/ {
    fastcgi_pass fastcgi_backend;
    fastcgi_keep_conn on;
    ...
  }
}

当使用的负载均衡方法不是默认的轮转法时,必须在keepalive 指令之前配置。

针对scgi和uwsgi协议,还没有实现其keepalive连接的打算。

Syntax: keepalive connections;
语法: keepalive connections;
 
默认值:
上下文: upstream
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!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Unit Nginx vs Pelayan Aplikasi LainUnit Nginx vs Pelayan Aplikasi LainApr 24, 2025 am 12:14 AM

Nginxunit lebih baik daripada pelayan HTTP yang terbina dalam Apachetomcat, Gunicorn dan Node.js, sesuai untuk projek berbilang bahasa dan keperluan konfigurasi dinamik. 1) Menyokong pelbagai bahasa pengaturcaraan, 2) menyediakan penambahbaikan konfigurasi dinamik, 3) fungsi mengimbangi beban terbina dalam, sesuai untuk projek yang memerlukan skalabilitas dan kebolehpercayaan yang tinggi.

Unit Nginx: Senibina dan Bagaimana Ia BerfungsiUnit Nginx: Senibina dan Bagaimana Ia BerfungsiApr 23, 2025 am 12:18 AM

NginxUnit meningkatkan prestasi aplikasi dan pengurusan dengan seni bina modular dan keupayaan konfigurasi semula dinamik. 1) Reka bentuk modular termasuk proses induk, router dan proses permohonan, menyokong pengurusan dan pengembangan yang cekap. 2) Konfigurasi semula dinamik membolehkan kemas kini konfigurasi yang lancar semasa runtime, sesuai untuk persekitaran CI/CD. 3) Sokongan berbilang bahasa dilaksanakan melalui pemuatan dinamik bahasa runtime, meningkatkan fleksibiliti pembangunan. 4) Prestasi tinggi dicapai melalui model yang didorong oleh peristiwa dan I/O asynchronous, dan tetap efisien walaupun di bawah kesesuaian yang tinggi. 5) Keselamatan diperbaiki dengan mengasingkan proses permohonan dan mengurangkan pengaruh bersama antara aplikasi.

Menggunakan Unit Nginx: Menggunakan dan Menguruskan AplikasiMenggunakan Unit Nginx: Menggunakan dan Menguruskan AplikasiApr 22, 2025 am 12:06 AM

NginxUnit boleh digunakan untuk menggunakan dan mengurus aplikasi dalam pelbagai bahasa. 1) Pasang nginxUnit. 2) Konfigurasikannya untuk menjalankan pelbagai jenis aplikasi seperti Python dan PHP. 3) Gunakan fungsi konfigurasi dinamik untuk pengurusan aplikasi. Melalui langkah -langkah ini, anda dapat menggunakan dan mengurus aplikasi dengan cekap dan meningkatkan kecekapan projek.

Nginx vs Apache: Analisis Perbandingan Pelayan WebNginx vs Apache: Analisis Perbandingan Pelayan WebApr 21, 2025 am 12:08 AM

Nginx lebih sesuai untuk mengendalikan sambungan serentak yang tinggi, manakala Apache lebih sesuai untuk senario di mana konfigurasi kompleks dan sambungan modul diperlukan. 1.Nginx dikenali dengan prestasi tinggi dan penggunaan sumber yang rendah, dan sesuai untuk kesesuaian yang tinggi. 2.apache terkenal dengan kestabilan dan sambungan modul yang kaya, yang sesuai untuk keperluan konfigurasi kompleks.

Kelebihan Unit Nginx: Fleksibiliti dan PrestasiKelebihan Unit Nginx: Fleksibiliti dan PrestasiApr 20, 2025 am 12:07 AM

NginxUnit meningkatkan fleksibiliti dan prestasi aplikasi dengan konfigurasi dinamik dan seni bina berprestasi tinggi. 1. Konfigurasi dinamik membolehkan konfigurasi aplikasi diselaraskan tanpa memulakan semula pelayan. 2. Prestasi tinggi dicerminkan dalam seni bina yang didorong dan tidak menyekat dan model multi-proses, dan dapat mengendalikan sambungan serentak dengan cekap dan menggunakan CPU multi-teras.

Nginx vs Apache: Prestasi, Skalabiliti, dan KecekapanNginx vs Apache: Prestasi, Skalabiliti, dan KecekapanApr 19, 2025 am 12:05 AM

Nginx dan Apache adalah pelayan web yang kuat, masing -masing dengan kelebihan dan kekurangan yang unik dari segi prestasi, skalabilitas dan kecekapan. 1) Nginx berfungsi dengan baik apabila mengendalikan kandungan statik dan terbalik proxying, sesuai untuk senario konvensional yang tinggi. 2) Apache melakukan lebih baik apabila memproses kandungan dinamik dan sesuai untuk projek yang memerlukan sokongan modul yang kaya. Pemilihan pelayan harus ditentukan berdasarkan keperluan dan senario projek.

The Ultimate Showdown: Nginx vs ApacheThe Ultimate Showdown: Nginx vs ApacheApr 18, 2025 am 12:02 AM

Nginx sesuai untuk mengendalikan permintaan serentak yang tinggi, manakala Apache sesuai untuk senario di mana konfigurasi kompleks dan sambungan berfungsi diperlukan. 1.Nginx mengamalkan seni bina yang didorong oleh peristiwa, tidak menyekat, dan sesuai untuk persekitaran yang tinggi. 2. Apache mengamalkan model atau model benang untuk menyediakan ekosistem modul yang kaya yang sesuai untuk keperluan konfigurasi kompleks.

Nginx dalam tindakan: contoh dan aplikasi dunia nyataNginx dalam tindakan: contoh dan aplikasi dunia nyataApr 17, 2025 am 12:18 AM

Nginx boleh digunakan untuk meningkatkan prestasi laman web, keselamatan, dan skalabiliti. 1) Sebagai proksi terbalik dan pengimbang beban, Nginx dapat mengoptimumkan perkhidmatan back-end dan berkongsi lalu lintas. 2) Melalui seni bina yang didorong oleh peristiwa dan tak segerak, Nginx dengan cekap mengendalikan sambungan serentak yang tinggi. 3) Fail konfigurasi membenarkan definisi peraturan yang fleksibel, seperti perkhidmatan fail statik dan mengimbangi beban. 4) Cadangan pengoptimuman termasuk membolehkan pemampatan GZIP, menggunakan cache dan menala proses pekerja.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)