Skip to main content

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

MezoniApacheNginx
ArxitekturaProcess/thread-basedEvent-driven, asynchronous
PerformanceKo'p bog'langan foydalanuvchilar uchun sustlashadiKatta trafikda juda yaxshi ishlaydi
Statik fayllarSekinroq xizmat ko'rsatadiJuda tez xizmat ko'rsatadi
Dinamik kontent (PHP)Native qo'llab-quvvatlaydiPHP-FPM orqali aloqa qiladi
Resurslar talabi (RAM/CPU)Ko'proq talab qiladiKam resurs bilan ko'p foydalanuvchini qo'llab-quvvatlaydi
Konfiguratsiya soddaligi.htaccess bilan moslashuvchanAsosiy konfiguratsiyada ishlaydi, .htaccess yo'q
Asinxron ishlashYo'qHa
Reverse proxyQo'llab-quvvatlaydi, lekin sekinJuda yaxshi optimizatsiya qilingan
SSL/TLS ishlash tezligiSekinroqTezroq

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)

  1. Apache o'rnatish
sudo apt install apache2
  1. Apache serverni ishga tushirish
sudo systemctl enable apache2
  1. 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.

  1. 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