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:
- 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.
- 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.
- 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.
- SSL terminatsiya qilish: Nginx SSL/TLS shifrlashni boshqarishi mumkin, bu esa Ruby ilova serveridan bu vazifani olib tashlaydi.
- Kesh: Nginx javoblarni keshga olishi mumkin, bu esa sahifa yuklash vaqtini tezlashtiradi.
- 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.