Rumah > Artikel > Operasi dan penyelenggaraan > Apakah ciri dan perbezaan antara Nginx dan Apache
1 Ringan, ditulis dalam C, perkhidmatan web yang sama akan menggunakan kurang memori dan sumber.
2. Anti-konkurensi, nginx menggunakan epollandkqueue sebagai model pembangunan, memproses permintaan adalah tak segerak dan tidak menyekat, dan kapasiti beban jauh lebih tinggi daripada apache, manakala apache menyekat. Di bawah konkurensi yang tinggi, nginx boleh mengekalkan penggunaan sumber yang rendah dan prestasi tinggi, manakala apache terdedah kepada lonjakan dalam bilangan proses dan penafian perkhidmatan apabila pemprosesan PHP perlahan atau tekanan bahagian hadapan adalah tinggi.
3. Apabila nginx dimulakan, ia akan menjana proses induk Kemudian, proses induk akan memotong beberapa sub-proses pekerja Akhirnya, setiap permintaan pengguna diproses oleh sub-benang pekerja.
4. Anda boleh mengkonfigurasi huluan nginx untuk melaksanakan proksi terbalik nginx.
5. Sebagai pelayan pengimbangan beban, nginx menyokong pengimbangan beban lapisan 7.
6. nginx mengendalikan fail statik dengan baik, dan prestasi pemprosesan statiknya lebih tiga kali lebih tinggi daripada apache.
7 Menyokong sambungan serentak yang tinggi Bilangan maksimum permintaan sambungan serentak sesaat secara teorinya boleh mencapai 50,000.
8. Konfigurasi nginx adalah mudah anda mulakan semula, anda akan mendapati bahawa konfigurasi adalah salah dan ia akan ranap.
9 Gunakan utas untuk memproses permintaan pengguna, dan utas berkongsi memori Anda hanya perlu membuka sebilangan kecil proses, dan berbilang utas boleh berkongsi memori proses itu, menduduki sejumlah kecil memori.
10 Apabila sesuatu proses mati, ia akan menjejaskan penggunaan berbilang pengguna dan menyebabkan kestabilan yang lemah.
11 Reka bentuk nginx sangat modular, dan menulis modul agak mudah.
12. nginx sendiri ialah pelayan proksi terbalik dan boleh digunakan sebagai pelayan proksi mel yang sangat baik.
13. Ia sangat mudah untuk dimulakan dan boleh dijalankan hampir 24/7 Ia tidak perlu dimulakan semula walaupun ia berjalan selama beberapa bulan Ia juga boleh menaik taraf versi perisian tanpa mengganggu perkhidmatan.
14 Komuniti aktif dan pelbagai modul berprestasi tinggi dihasilkan dengan cepat.
1 Pilih penyekatan.
2. Satu sambungan sepadan dengan satu proses.
3 Gunakan proses untuk mengendalikan permintaan pengguna, gunakan MPM (modul berbilang pemprosesan) untuk mengikat ke port rangkaian, terima permintaan dan jadualkan sub-proses untuk mengendalikan permintaan.
4 Apabila terdapat terlalu banyak permintaan pengguna, lebih banyak proses akan dibuka dan memori akan menjadi besar Bilangan maksimum permintaan sambungan serentak sesaat tidak boleh melebihi 3,000.
5. Apabila proses mati, ia tidak akan menjejaskan pengguna lain
6 Penulisan semula Apache lebih berkuasa daripada nginx.
7 Dengan pembangunan Apache, terdapat begitu banyak modul yang pada asasnya anda boleh mencari semua yang anda boleh fikirkan.
8. Apache lebih matang dan mempunyai lebih sedikit pepijat, manakala nginx mempunyai lebih banyak pepijat.
9. Apache sangat stabil.
10 Sokongan Apache untuk PHP adalah agak mudah, dan nginx perlu digunakan dengan bahagian belakang yang lain.
11 Apache mempunyai kelebihan dalam mengendalikan permintaan dinamik Secara amnya, permintaan dinamik perlu dilakukan oleh apache, manakala nginx sesuai untuk statik dan terbalik.
12 Apache masih menjadi arus perdana, dengan ciri yang kaya, teknologi matang dan komuniti pembangunan.
Perbezaan teras antara keduanya ialah apache ialah model berbilang proses segerak, satu sambungan sepadan dengan satu proses, manakala nginx adalah tak segerak dan berbilang sambungan (10,000 tahap) boleh sepadan dengan satu proses.
Secara umumnya, untuk perkhidmatan web yang memerlukan prestasi, gunakan nginx.
Jika anda tidak memerlukan prestasi dan hanya mahukan kestabilan, pertimbangkan pelbagai modul fungsi Apache adalah lebih baik daripada nginx Contohnya, modul ssl lebih baik daripada nginx dan mempunyai lebih banyak item yang boleh dikonfigurasikan.
Model IO rangkaian epoll (kqueue on freebsd) ialah sebab asas untuk prestasi pemprosesan tinggi nginx, tetapi epoll tidak menang dalam semua kes Jika ia menyediakan perkhidmatan statik, hanya beberapa Beberapa fail, model pilihan apache mungkin lebih berprestasi daripada epoll.
Sudah tentu, ini hanyalah andaian berdasarkan prinsip model IO rangkaian Aplikasi sebenar masih memerlukan ujian sebenar.
Penyelesaian yang lebih umum ialah menggunakan anti-konkurensi nginx hadapan dan kluster apache hujung belakang, yang akan berfungsi lebih baik bersama-sama.
Atas ialah kandungan terperinci Apakah ciri dan perbezaan antara Nginx dan Apache. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!