Apache vs Nginx performance
1.Apache Web Server nima?
1.1 Apache HTTP Server (yoki qisqacha Apache) — bu eng mashhur va eng uzoq tarixga ega open-source web serverlardan biri. U 1995-yilda Apache Software Foundation tomonidan ishlab chiqilgan.
1.2 Apache'ning asosiy vazifasi — mijoz (ya'ni browser)dan kelgan HTTP so'rovlarni qabul qilib, unga javob (web sahifa, rasm, fayl va h.k.) yuborish.
Apache quyidagilarni qo'llab-quvvatlaydi:
Modularga asoslangan arxitektura (mod_rewrite,mod_ssl, va h.k.)
.htaccess fayli orqali lokal sozlamalar
CGI, PHP, Python, Perl
Virtual Host (bir nechta saytni bir serverda ishlatish)
HTTPS (TLS/SSL) va xavfsizlik sozlamalari
2.Nginx Web Server nima?
Nginx (o'qilishi "Engine-X") — bu ham bir web server, lekin u 2004-yilda Igor Sysoev tomonidan yaratilgan va ayniqsa yuqori samaradorlik (performance) va past resurs talab qilishi bilan mashhur.
U ham HTTP so'rovlarni qayta ishlaydi, lekin shuningdek Reverse Proxy, Load Balancer, API Gateway sifatida ham keng qo'llanadi.
3. Apache vs Nginx — Performance Taqqoslash
| Mezoni | Apache | Nginx |
|---|---|---|
| Arxitektura | Process/thread-based | Event-driven, asynchronous |
| Performance | Ko'p bog'langan foydalanuvchilar uchun sustlashadi | Katta trafikda juda yaxshi ishlaydi |
| Statik fayllar | Sekinroq xizmat ko'rsatadi | Juda tez xizmat ko'rsatadi |
| Dinamik kontent (PHP) | Native qo'llab-quvvatlaydi | PHP-FPM orqali aloqa qiladi |
| Resurslar talabi (RAM/CPU) | Ko'proq talab qiladi | Kam resurs bilan ko'p foydalanuvchini qo'llab-quvvatlaydi |
| Konfiguratsiya soddaligi | .htaccess bilan moslashuvchan | Asosiy konfiguratsiyada ishlaydi, .htaccess yo'q |
| Asinxron ishlash | Yo'q | Ha |
| Reverse proxy | Qo'llab-quvvatlaydi, lekin sekin | Juda yaxshi optimizatsiya qilingan |
| SSL/TLS ishlash tezligi | Sekinroq | Tezroq |
Keling, Apache HTTP Server qanday ishlashini tushunish uchun amaliy misol ko'rib chiqamiz: biz oddiy "Hello World" HTML sahifa yaratamiz va uni Apache orqali serve qilamiz.
Misol: Apache orqali hello.html sahifani serve qilish (Ubuntu/Linux’da)
- Apache o'rnatish
sudo apt install apache2
- Apache serverni ishga tushirish
sudo systemctl enable apache2
- HTML fayl yaratish Apache default root katalogi:
/var/www/html
Bu yerga HTML fayl yaratamiz:
sudo nano /var/www/html/hello.html
Fayl ichiga quyidagini yozing:
<html>
<head>
<title>Hello Apache</title>
</head>
<body>
<h1>Hello, World from Apache!</h1>
</body>
</html>
Ctrl + O → Enter → Ctrl + X bilan saqlab chiqamiz.
- Brauzerda ochish Agar server IP manzili 192.168.1.10 bo'lsa, brauzerda kiramiz:
http://192.168.1.10/hello.html
Natijada siz:
Hello, World from Apache!
degan sahifani ko'rasiz.
Apache Config haqida qisqacha
Apache konfiguratsiya fayllari:
/etc/apache2/apache2.conf — asosiy konfiguratsiya
/etc/apache2/sites-available/000-default.conf — default sayt konfiguratsiyasi
/var/www/html/ — web root papka (statik fayllar shu yerda)
Agar xohlasang, bu konfiguratsiyalar orqali virtual host, SSL, yoki PHP bilan birga ishlashni ham ko'rsatib beraman.
Apache + PHP (qo'shimcha)
Agar PHP sahifa serve qilmoqchi bo'lsang:
sudo systemctl restart apache2
Keyin /var/www/html/index.php fayl yarat:
<?php
echo "Hello from PHP + Apache!";
?>
Brauzerda http://localhost/index.php ni ochsang, PHP sahifa ishlaydi.
Qachon Apache, qachon Nginx?
Apache ishlatish uchun qulay holatlar: .htaccess fayli orqali har bir papka uchun alohida sozlama kerak bo'lsa
Legacy (eski) LAMP stack bilan ishlayotgan bo'lsangiz
PHP moduli serverga integratsiyalashgan bo'lsa
Nginx ishlatish uchun qulay holatlar:
Yuqori trafikda ishlovchi saytlar (CDN, katta portallar, API serverlar)
Static fayllar ko'p bo'lsa (JS, CSS, rasmlar)
Reverse Proxy yoki Load Balancer kerak bo'lsa
Docker yoki microservice arxitekturasida API Gateway sifatida