Middle
Дар Nginx чӣ рӯй медиҳад?
sobes.tech AI
Ҷавоб аз AI
Барномаи навиштаи дар Ruby (масалан, дар фреймворки Rails ё Sinatra) дар сервери веби барномаҳо иҷро мешавад (масалан, Puma, Unicorn, Passenger). Nginx ҳамчун сервери пешбар фаъолият мекунад, ки дархостҳои HTTP-ро аз мизоҷон қабул мекунад ва онҳоро ба сервери веби барномаҳо интиқол медиҳад.
Функсияҳои асосии Nginx дар ин контекст:
- Проксигардонии дархостҳо: Nginx ҳамчун прокси-и баръакс амал мекунад. Он дархостҳоро аз браузерҳои мизоҷон қабул мекунад ва онҳоро ба сервери веби барномаҳои Ruby мефиристад. Пас аз гирифтани ҷавоб аз сервери барномаҳо, онро ба мизоҷ бармегардонад.
- Хизматрасонии файлҳои статикӣ: Nginx метавонад файлҳои статикӣ (CSS, JavaScript, тасвирҳо)ро мустақиман ва бо самаранокӣ хизматрасонӣ кунад, ки ин барномаи Ruby-ро аз боргузорӣ озод мекунад ва самаранокиро баланд мебардорад.
- Танзими баробарии бор: Агар чанд нусхаи сервери веби Ruby дошта бошед, Nginx метавонад дархостҳои воридшударо байни онҳо тақсим кунад, то муқовимат ба хато ва масштабшавиро таъмин кунад.
- SSL-терминировка: Nginx метавонад SSL/TLS-ро коркард кунад, ки ин вазифаро аз сервери Ruby-ро бардошт.
- Кешгирӣ: Nginx метавонад ҷавобҳоро кеш кунад, ки ин суръатбахшии боргирии саҳифаҳоро барои дархостҳои такрорӣ таъмин мекунад.
- Тарафдорӣ (gzip): Nginx метавонад ҷавобҳоро пешакӣ фишурд, то миқдори маълумоти интиқолёфта кам шавад.
Конфигуратсияи Nginx барои барномаи Ruby одатан иборат аст аз:
- Тартиби виртуалӣ барои домени шумо.
- Танзимоти проксигардонии дархостҳо ба сервери веби Ruby (масалан, тавассути сокет ё порт TCP).
- Тартиби роҳҳо барои файлҳои статикӣ.
- Танзимоти SSL/TLS (агар зарур бошад).
- Танзимоти балансгирии бор (агар зарур бошад).
# Намунаи конфигуратсияи содда барои Nginx барои Rails бо Puma
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
location / {
# Проксигардонии дархостҳо ба Puma тавассути сокет
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)$ {
# Хизматрасонии файлҳои статикӣ
root /path/to/your/app/public;
expires max;
add_header Cache-Control public;
}
# Иловаи дигар блокҳои location барои дигар захираҳои статикӣ дар зарурӣ
}
Дар натиҷа, Nginx ҳамчун асбоби бисёрфунксионалӣ дар пеши сервери Ruby амал мекунад, ки иҷроиш, бехатарӣ ва масштабшавиро беҳтар мекунад.