cari
RumahOperasi dan penyelenggaraanNginxnginx如何实现高并发

nginx如何实现高并发

Jun 04, 2019 pm 05:34 PM
nginx

简单来讲,就是异步,非阻塞,使用了epoll和大量的底层代码优化。

稍微详细一点展开的话,就是nginx的特殊进程模型和事件模型的设计。

nginx如何实现高并发

视频课程推荐→:《千万级数据并发解决方案(理论+实战)》

进程模型

nginx采用一个master进程,多个woker进程的模式。

master进程主要负责收集、分发请求。当一个请求过来时,master拉起一个worker进程负责处理这个请求。

master进程也要负责监控woker的状态,保证高可靠性

woker进程一般设置为跟cpu核心数一致。nginx的woker进程跟apache不一样。apche的进程在同一时间只能处理一个请求,所以它会开很多个进程,几百甚至几千个。而nginx的woker进程在同一时间可以处理额请求数只受内存限制,因此可以处理多个请求。

事件模型

nginx是异步非阻塞的。

每进来一个request,会有一个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker不会这么傻等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,告诉我一声,我再接着干”。于是他就休息去了。此时,如果再有request 进来,他就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。

web server的工作性质决定了每个request的大部份生命都是在网络传输中,实际上花费在server机器上的时间片不多。这是几个进程就解决高并发的秘密所在。

IO多路复用模型epoll

epoll() ,内核维护一个链表,epoll_wait 直接检查链表是不是空就知道是否有文件描述符准备好了。内核实现epoll 是根据每个 sockfd 上面的与设备驱动程序建立起来的 回调函数 实现的。那么,某个 sockfd 上的事件发生时,与它对应的回调函数就会被调用,来把这个 sockfd 加入链表,其他处于“空闲的”状态的则不会。

select() ,内核采用 轮训 的方法来查看是否有fd 准备好,其中的保存 sockfd 的是类似数组的数据结构 fd_set,key 为 fd,value 为 0 或者 1。

poll()

【总结】:epoll 与 select 相比最大的优点是不会随着 sockfd 数目增长而降低效率。

更多Nginx相关技术文章,请访问Nginx使用教程栏目进行学习!

Atas ialah kandungan terperinci nginx如何实现高并发. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Nginx: Alat serba boleh untuk aplikasi web modenNginx: Alat serba boleh untuk aplikasi web modenApr 11, 2025 am 12:03 AM

Nginxisessentialformodernwebapplicationsduetoitsrolesasareverseproxy, loadbalancer, andwebserver, menawarkanHighperformanceAndscalability.1) itactsasareverseproxy, enhancingsecurityandperformanceCachingandbalancing.2)

Konfigurasi Nginx SSL/TLS: Mengamankan laman web anda dengan HTTPSKonfigurasi Nginx SSL/TLS: Mengamankan laman web anda dengan HTTPSApr 10, 2025 am 09:38 AM

Untuk memastikan keselamatan laman web melalui NGINX, langkah -langkah berikut diperlukan: 1. Buat konfigurasi asas, tentukan sijil SSL dan kunci persendirian; 2. Mengoptimumkan konfigurasi, membolehkan HTTP/2 dan OCSPSTAPLING; 3. Debug kesilapan biasa, seperti laluan sijil dan isu suite penyulitan; 4. Cadangan Pengoptimuman Prestasi Aplikasi, seperti menggunakan Let'sEncrypt dan Sesi Multiplexing.

Soalan Temuduga Nginx: Ace DevOps/Sistem Temuduga Admin AndaSoalan Temuduga Nginx: Ace DevOps/Sistem Temuduga Admin AndaApr 09, 2025 am 12:14 AM

Nginx adalah HTTP berprestasi tinggi dan pelayan proksi terbalik yang baik untuk mengendalikan sambungan serentak yang tinggi. 1) Konfigurasi Asas: Dengar port dan sediakan perkhidmatan fail statik. 2) Konfigurasi Lanjutan: Melaksanakan proksi terbalik dan mengimbangi beban. 3) Kemahiran Debugging: Periksa log ralat dan uji fail konfigurasi. 4) Pengoptimuman Prestasi: Aktifkan pemampatan GZIP dan laraskan dasar cache.

Teknik caching nginx: Meningkatkan prestasi laman webTeknik caching nginx: Meningkatkan prestasi laman webApr 08, 2025 am 12:18 AM

Cache Nginx dapat meningkatkan prestasi laman web dengan ketara melalui langkah -langkah berikut: 1) Tentukan kawasan cache dan tetapkan laluan cache; 2) Konfigurasikan tempoh kesahihan cache; 3) menetapkan dasar cache yang berbeza mengikut kandungan yang berbeza; 4) mengoptimumkan penyimpanan cache dan mengimbangi beban; 5) Kesan Cache Memantau dan Debug. Melalui kaedah ini, cache Nginx dapat mengurangkan tekanan pelayan back-end, meningkatkan kelajuan tindak balas dan pengalaman pengguna.

Nginx dengan Docker: Menggunakan dan menskalakan aplikasi kontenaNginx dengan Docker: Menggunakan dan menskalakan aplikasi kontenaApr 07, 2025 am 12:08 AM

Menggunakan DockerCompose dapat memudahkan penggunaan dan pengurusan Nginx, dan skala melalui Dockerswarm atau Kubernetes adalah amalan biasa. 1) Gunakan dockercompose untuk menentukan dan menjalankan bekas Nginx, 2) melaksanakan pengurusan kluster dan skala automatik melalui Dockerswarm atau Kubernetes.

Konfigurasi nginx maju: Menguasai blok pelayan & proksi terbalikKonfigurasi nginx maju: Menguasai blok pelayan & proksi terbalikApr 06, 2025 am 12:05 AM

Konfigurasi lanjutan Nginx boleh dilaksanakan melalui blok pelayan dan proksi terbalik: 1. Blok pelayan membenarkan beberapa laman web dijalankan dalam satu keadaan, setiap blok dikonfigurasi secara bebas. 2. Proksi terbalik memajukan permintaan ke pelayan backend untuk merealisasikan beban mengimbangi dan pecutan cache.

Penalaan Prestasi Nginx: mengoptimumkan kelajuan dan latensi rendahPenalaan Prestasi Nginx: mengoptimumkan kelajuan dan latensi rendahApr 05, 2025 am 12:08 AM

Penalaan prestasi Nginx boleh dicapai dengan menyesuaikan bilangan proses pekerja, saiz kolam sambungan, membolehkan mampatan GZIP dan protokol HTTP/2, dan menggunakan cache dan mengimbangi beban. 1. Laraskan bilangan proses pekerja dan saiz kolam sambungan: worker_processesauto; peristiwa {worker_connections1024;}. 2. Dayakan Mampatan GZIP dan HTTP/2 Protokol: http {gzipon; server {listen443sslhttp2;}}. 3. Gunakan pengoptimuman cache: http {proxy_cache_path/path/to/cachelevels = 1: 2k

Pengerasan Keselamatan Nginx: Melindungi pelayan web anda dari seranganPengerasan Keselamatan Nginx: Melindungi pelayan web anda dari seranganApr 04, 2025 am 12:06 AM

Peningkatan keselamatan nginx dapat dicapai melalui langkah -langkah berikut: 1) Pastikan semua lalu lintas dihantar melalui HTTPS, 2) Konfigurasi pengepala HTTP untuk meningkatkan keselamatan komunikasi, 3) menubuhkan ssl/tls yang disulitkan penghantaran, 4) melaksanakan kawalan akses dan mengehadkan untuk mencegah serangan. Langkah -langkah ini dapat meningkatkan keselamatan pelayan Nginx dengan berkesan.

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual