VPS Serverda Nginx va Bepul SSL (Certbot) Sozlash Qo'llanmasi
Muallif: Javohir Abdullayev · · Server va DevOps

Kirish: Nima uchun Nginx va SSL har bir loyiha uchun shart?
Veb-loyiha yoki Telegram bot API tayyor bo'lgach, uni real foydalanuvchilar uchun serverga (VPS) joylashtirish navbati keladi. Ko'plab yangi dasturchilar dasturni to'g'ridan-to'g'ri ochiq portda (masalan, 8000 yoki 5000) ishga tushirishadi. Biroq bu xavfsizlik va unumdorlik jihatidan xavfli amaliyot hisoblanadi.
Nginx — zamonaviy, tezkor va barqaror teskari proksi (reverse proxy) server bo'lib, kelayotgan so'rovlarni qabul qiladi, statik fayllarni tezda uzatadi va trafikni Django, FastAPI yoki Node.js ilovangizga xavfsiz yo'naltiradi. SSL (HTTPS) esa foydalanuvchi va server o'rtasidagi ma'lumotlarni shifrlab, xavfsizlikni kafolatlaydi hamda qidiruv tizimlarida sayt reytingini oshiradi.
Ushbu amaliy qo'llanmada biz Ubuntu VPS serverida Nginx o'rnatish, domen nomini ulash va Let's Encrypt yordamida bepul SSL sertifikatini sozlashni bosqichma-bosqich ko'rib chiqamiz.
1-qadam: VPS serverni yangilash va Nginx o'rnatish
Serverga SSH orqali kiring va tizim paketlarini yangilang:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx -yNginx o'rnatilgach, uning holatini tekshirishingiz mumkin:
sudo systemctl status nginxAgar xavfsizlik devori (UFW) yoqilgan bo'lsa, Nginx uchun ochiq portlarni ruxsat eting:
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status2-qadam: Domen nomini VPS serverga yo'naltirish (DNS)
SSL sertifikatini olishdan oldin domen nomingiz VPS serverning IP manziliga to'g'ri bog'langan bo'lishi shart. Domen boshqaruv panelida quyidagi ikkita A yozuvini (DNS A record) qo'shing:
- Host: @ | Qiymat: Sizning_Server_IP
- Host: www | Qiymat: Sizning_Server_IP
DNS yozuvlari tarqalishi uchun odatda 5 daqiqadan 24 soatgacha vaqt ketishi mumkin. Buni ping sizningdomen.uz buyrug'i orqali tekshirib ko'ring.
3-qadam: Nginx Server Block (Virtual Host) konfiguratsiyasi
Har bir alohida domen uchun Nginx server blokini yaratish maqsadga muvofiqdir. Yangi konfiguratsiya faylini ochamiz:
sudo nano /etc/nginx/sites-available/sizningdomen.uzUshbu fayl ichiga quyidagi bazaviy konfiguratsiyani kiriting (loyiha 8000-portda ishlayotgan deb hisoblaymiz):
server {
listen 80;
server_name sizningdomen.uz www.sizningdomen.uz;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Faylni saqlang (Ctrl+O, Enter, Ctrl+X). Endi konfiguratsiyani faollashtiramiz va sintaktik xatolarni tekshiramiz:
sudo ln -s /etc/nginx/sites-available/sizningdomen.uz /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx4-qadam: Certbot o'rnatish va bepul Let's Encrypt SSL olish
Certbot — Let's Encrypt sertifikatlarini avtomatik olish va Nginx sozlamalarini yangilash uchun eng qulay vositadir. Uni Snap paketi orqali o'rnatamiz:
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbotEndi Nginx plagini yordamida bitta buyruq bilan SSL sertifikatini o'rnatamiz:
sudo certbot --nginx -d sizningdomen.uz -d www.sizningdomen.uzJarayon davomida Certbot sizdan elektron pochta manzilingizni va litsenziya shartlariga roziligingizni so'raydi. Muvaffaqiyatli yakunlangach, Certbot Nginx konfiguratsiyasiga avtomatik ravishda HTTPS sozlamalarini qo'shadi va barcha HTTP so'rovlarni HTTPS'ga yo'naltiradi.
5-qadam: SSL avtomatik yangilanishini (Auto-renewal) tekshirish
Let's Encrypt sertifikatlari 90 kun davomida amal qiladi. Certbot tizimga maxsus taymer o'rnatib, sertifikat muddati tugashiga 30 kun qolganida uni avtomatik yangilaydi. Yangilanish mexanizmi to'g'ri ishlayotganini tekshirish uchun quyidagi test buyrug'ini bajaring:
sudo certbot renew --dry-runAgar natijada hech qanday xatolik chiqmasa, sertifikatlaringiz doimiy ravishda avtomatik yangilanib turadi.
Xulosa va qo'shimcha xavfsizlik tavsiyalari
Tabriklaymiz! Siz VPS serveringizda Nginx reverse proxy va to'liq himoyalangan HTTPS protokolini muvaffaqiyatli sozlandingiz. Endi loyihangiz foydalanuvchilar uchun xavfsiz va qidiruv tizimlari talablariga to'liq javob beradi.
Keyingi qadamlar sifatida server xavfsizligini yanada kuchaytirish uchun SSH portini o'zgartirish, Fail2ban o'rnatish hamda Nginx'da Gzip siqishni (compression) yoqishni tavsiya qilamiz.
Teglar: #Nginx #SSL sertifikat #VPS #DevOps #Certbot