Sobes.tech
Middle

Nginxda nima bo'lmoqda?

sobes.tech AI

AIdan javob

Ruby (masalan, Rails yoki Sinatra framework'idan foydalanib yozilgan) yozilgan ilova web-serverda (masalan, Puma, Unicorn, Passenger) ishga tushiriladi. Nginx old front-server sifatida ishlaydi, kiruvchi HTTP so'rovlarni oladi va ularni Ruby ilova serveriga yo'naltiradi.

Bu kontekstda Nginxning asosiy funksiyalari:

  1. So'rovlarni proksi qilish: Nginx teskari proksi sifatida ishlaydi. U mijozlarning brauzerlaridan so'rovlarni oladi va ularni Ruby ilova serveriga uzatadi. Ilova serveridan javob olgach, Nginx uni mijozga qaytaradi.
  2. Statik fayllarni xizmat qilish: Nginx samarali tarzda statik fayllarni (CSS, JavaScript, rasm) to'g'ridan-to'g'ri xizmat qilishi mumkin, bu esa ilova serverining yukini kamaytiradi. Bu ilovani yengillashtiradi va ishlashini yaxshilaydi.
  3. Yukni taqsimlash: Agar sizda bir nechta Ruby ilova serveri nusxalari bo'lsa, Nginx kiruvchi so'rovlarni ularga taqsimlaydi, bu esa nosozliklarga qarshi chidamlilik va kengaytirilishni ta'minlaydi.
  4. SSL terminatsiya qilish: Nginx SSL/TLS shifrlashni boshqarishi mumkin, bu esa Ruby ilova serveridan bu vazifani olib tashlaydi.
  5. Kesh: Nginx javoblarni keshga olishi mumkin, bu esa sahifa yuklash vaqtini tezlashtiradi.
  6. Gzip bilan siqish: Nginx javoblarni yuborishdan oldin siqishi mumkin, bu esa uzatiladigan ma'lumot hajmini kamaytiradi.

Ruby ilovasi uchun Nginx konfiguratsiyasi odatda quyidagilarni o'z ichiga oladi:

  • Domen uchun virtual hostni aniqlash.
  • So'rovlarni Ruby ilova serveriga proksi qilishni sozlash (masalan, soket yoki TCP port orqali).
  • Statik fayllar uchun yo'llarni belgilash.
  • SSL/TLS konfiguratsiyasi (agar kerak bo'lsa).
  • Yukni taqsimlashni sozlash (agar kerak bo'lsa).
# Puma bilan Rails uchun oddiy Nginx konfiguratsiya misoli
server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    location / {
        # Puma'ga soket orqali proksi
        proxy_pass http://unix:/path/to/your/app/shared/sockets/puma.sock;
        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;
    }

    location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
        # Statik fayllarni xizmat qilish
        root /path/to/your/app/public;
        expires max;
        add_header Cache-Control public;
    }

    # Kerak bo'lsa, boshqa statik resurslar uchun location bloklarini qo'shing
}

Xulosa qilib aytganda, Nginx Ruby ilova serverining oldida turadigan ko'p funksiyali vositadir, uning ishlashini, xavfsizligini va kengaytirilishini yaxshilaydi.