Кампутары, Праграмаванне
Nginx: налада і ўстаноўка
Што такое apache, nginx? Прызначэнне, асаблівасці, варыянты налад - гэта рэчы, з якімі павінен быць азнаёмлены кожны вэб-распрацоўшчык, каб тэставаць свае напрацоўкі.
Аб nginx замовіць слова
Запуск, перазагрузка і логі
nginx -s сігнал
У дадзеным выпадку падстаўляць можна такія каманды (павінны паступаць ад карыстальніка, што запусціў інструмент):
- Stop. Выкарыстоўваецца для хуткага завяршэння працы.
- Reload. Каманда неабходная, каб перазагрузіць канфігурацыйны файл. Справа ў тым, што любыя змены не будуць ужытыя, пакуль файл працуе. І каб яны ўступілі ў сілу, неабходная перазагрузка. Як толькі будзе атрыманы гэты сігнал, галоўны працэс пачне правяраць правільнасць сінтаксічнай складнікам канфігурацыйнага файла і паспрабуе ўжыць наяўныя там ўказанні. У выпадку няўдачы ён адкаціць змены і будзе працаваць са старымі параметрамі. Калі ўсё адбылося паспяхова, то будуць запушчаныя новыя працоўныя працэсы, а старым будзе адпраўлена патрабаванне завяршыцца.
- Quit. Ўжываецца для плыўнага завяршэння працы. Прымяняецца, калі неабходна пачакаць, пакуль скончаць абслугоўвацца бягучыя запыты.
- Reopen. Зачыніць і адкрыць лог-файлы.
выкарыстанне утыліт
Настройка працэсаў можа ажыццяўляцца таксама з дапамогай сродкаў Unix (у якасці прыкладу будзе разгледжана ўтыліта kill). Звычайна яны выкарыстоўваюць механізм адпраўкі працэсу сігналу напрамую з дадзенымі. Ўвязваюцца яны з дапамогай ID. Гэтыя дадзеныя захоўваюцца ў файле nginx.pid. Дапусцім, што нас цікавіць працэс №134. Тады для плыўнага завяршэння нам неабходна адправіць наступную інфармацыю:
kill -s QUIT 1628
Дапусцім, што мы хочам паглядзець сьпіс усіх запушчаных файлаў. Выкарыстоўваем для гэтага ўтыліту ps. Каманда жа будзе выглядаць наступным чынам:
ps -ax | grep nginx
Гэта значыць, як бачыце, пры выкарыстанні дадатковага інструментара паказваецца, што ідзе менавіта яго прымяненне. А цяпер давайце сканцэнтруемся на тым, як здзяйсняецца nginx-налада.
Структура канфігурацыйнага файла
Раздача статычнага змесціва
Гэта адна з самых важных задач, якая стаіць перад канфігурацыяй nginx. Пад раздачай статыстычнага змесціва маюць на ўвазе выявы і HTML-старонкі (не дынамічныя). Дапусцім, што нам патрэбна разавая праца па наладзе nix nginx кластара. Ці складана гэта зрабіць? Няма, і давайце разгледзім прыклад. Перш чым прыступаць да яго, неабходна дэталізаваць ўмовы задачы. Так, у залежнасці ад запытаў, файлы будуць ісці з розных лакальных каталогаў. Так, у / data / www мы маем HTML-дакументы. А ў каталогу / data / images падаюцца здымкі. Аптымальная налада nginx у дадзеным выпадку патрабуе рэдагавання канфігурацыйнага файла, у якім неабходна наладзіць блок server ўнутры http. Для падтрымкі будзе выкарыстоўвацца таксама два location.
Рэалізацыя: server
http {
server {
}
}
Канфігурацыйны файл можа працаваць з некалькімі такімі блокамі. Але яны павінны адрознівацца сваімі імёнамі і партамі, з дапамогай якіх адбываецца атрыманне дадзеных.
Рэалізацыя: location
location / {
root / data / www;
}
Наяўнасць знака «/» неабходна, каб параўноўваць атрымоўваныя дадзеныя і глядзець, ці ёсць такі адрас з апрацаванага запыту тут. Калі ніякіх праблем няма, то паказваем шлях / data / www да неабходнага файлу, што знаходзіцца ў дадзенай лакальнай сістэме. Калі супадзенне ёсць з некалькімі блокамі, то выбіраецца той, у якога самы доўгі прэфікс. У прыкладзе прыкладзе яго даўжыня складае адзінкі, гэта значыць выкарыстанне будзе толькі ў тым выпадку, калі няма «канкурэнтаў». Зараз давайце яго ўдасканалім:
location / images / {
root / data;
}
Як можаце вызначыць, шукаем мы малюнка. А цяпер давайце сумяшчальны ўсе напрацоўкі, якія былі раней, і канфігурацыя на дадзены момант выглядае наступным чынам:
server {
location / {
root / data / www;
}
location / images / {
root / data;
}
}
Гэта рабочы варыянт, які злучвае стандартны порт №80. Гэты сервер без праблем можа быць даступны на лакальным кампутары, калі прайсці па адрасе: http: // localhost /. Як жа гэта ўсё будзе працаваць?
Прынцып функцыянавання прыкладу
Стварэнне простага проксі-сервера
server {
listen 8080;
root / data / up1;
location / {
}
}
А цяпер давайце для вас расшыфрую: ствараецца просты сервер. Ён будзе праслухоўваць порт 8080. Ці не пазначыць listen, то сервер будзе працаваць на 80-м. Адлюстроўвацца будуць усе запыты ў рамках лакальнай файлавай сістэмы, якія накіраваны на каталог / data / up1 (вядома, яго перад гэтым неабходна будзе стварыць). Для магчымасці праверкі там неабходна змясціць файл index.html. Дзякуючы размяшчэнні дырэктывы root ў кантэксце server мы зможам скарыстацца location пры любых умовах (паколькі, такім чынам, здымаюцца абмежаванні доступу). Цяпер працуем над стварэннем проксі-сервера. Для яго працы нам спатрэбіцца дырэктыва proxy_pass, для якой будуць пазначаны пратакол, імя, а таксама порт аб'екта як параметры (пры лакальным падключэнні гэта будзе выглядаць як http: // localhost: 8080). Атрымаецца такі вынік:
server {
location / {
proxy_pass http: // localhost: 8080;
}
location / images / {
root / data;
}
}
Калі вы разглядаеце код і аналізуеце яго, то можаце заўважыць, што другі блок location быў зменены. Так, у дадзеным выпадку ён можа працаваць з тыповымі пашырэннямі малюнкаў. Крыху па-іншаму яго можна было б адлюстраваць такім чынам:
location ~ \. (gif | jpg | png) $ {
root / data / images;
}
Выніковая канфігурацыя проксі-сервера выглядае наступным чынам:
server {
location / {
proxy_pass http: // localhost: 8080 /;
}
location ~ \. (gif | jpg | png) $ {
root / data / images;
}
}
Ён будзе адфільтроўваць запыты, у канцы якіх маюцца названыя пашырэння, і адпраўляць іх таму, хто папрасіў файлы. Не забывайце, што пры жаданні праверыць файл канфігурацыі яго неабходна будзе перазагрузіць. І паверце, гэта найпростая nginx-налада. Калі адкрыць канфігурацыйны файл сервера «Вконтакте» або іншай буйной кампаніі, у іх будзе кода больш, чым слоў у гэтым артыкуле.
Similar articles
Trending Now