Нгинк

Како се користи преписивање УРЛ-а

Како се користи преписивање УРЛ-а
Преписивање УРЛ-а је процес промене УРЛ-а захтева у нешто друго како је дефинисано на веб серверу. Нгинк користи модул нгк_хттп_реврите_модуле, који углавном користи смернице ретурн, реврите у сврху преписивања. Осим ових директива дефинисаних у овом модулу, директива мап, дефинисана у нгк_хттп_мап_модуле, такође се може користити за лако преписивање УРЛ адреса. Овај водич намерава да објасни око две главне директиве - повратак, преписивање и њихове заставе, начин рада и њихове апликације.

Предуслови

Овај водич је оптимизован за Нгинк 1.0.1 и новије верзије, па се стога препоручује да постојећу Нгинк инсталацију ажурирате на горе поменуту или старију верзију. Међутим, неке од наредби, синтакса могу и даље радити за било коју верзију пре поменуте верзије. Будући да се овај водич односи на преписивање УРЛ-ова, што је помало напредна тема, претпоставља се да је публика упозната са поступком инсталације Нгинка, па стога овде није објашњено.

Повратак

Повратак је основна директива која врши преписивање УРЛ адреса и која је једноставна за разумевање. Не користи регуларне изразе, али може да садржи променљиве за рашчлањивање, забележене са путање блока локације. Обично се повратна директива користи за преусмеравање УРЛ-а захтева на друго место, па стога често користи ХТТП кодове попут 301 за трајно преусмеравање и 302 за привремено преусмеравање. Следећи исечци кода приказују неке од случајева употребе директиве ретурн.

Следећи фрагмент кода преусмерава УРЛ захтева на Гоогле.цом. Може се користити било директно под блоком сервера или под блоком кода локације, али пазите да не преусмерите на исти домен како бисте избегли петљу преусмеравања

ретурн 301 хттпс: // гоогле.цом;

Следећи исечак кода преусмерава УРЛ захтева на Нуцута.цом заједно са путањом, на пример, горе наведени пример не садржи ниједну путању, параметре, па самим тим без обзира која се УРЛ адреса уписује у траку за адресу, захтев се преусмерава на коријенски домен Гоогле-а, док у следећем примеру, путања, заједно са параметрима, преносе се без имена домена. Алтернативно, $ ис_аргс $ аргс се могу користити, али онда уместо $ рекуест_ури треба користити променљиву $ ури јер $ рекуест_ури такође садржи параметре УРЛ-а. Ако је услов преусмеравање на други директоријум истог домена, тада користите променљиву $ хост уместо имена домена у ретурн директиви, на пример у следећем примеру уместо нуцута.цом, користите $ хост.

ретурн 301 хттпс: // нуцута.цом $ рекуест_ури;

Следећи исечак кода преусмерава долазни захтев у директоријум путање истог домена и шему, што значи да ли се следећи исечак кода користи у хттп: // Линук.цом, а ако му је посетилац упутио захтев, он ће бити преусмерен у директоријум путање, па је следећи исечак кода користан при управљању великим бројем веб локација. Овде $ шема дефинише протокол УРЛ-а, као што су ФТП, ХТТП, ХТТПС, а $ хост дефинише тренутни домен сервера са његовим наставком домена, као што је Гоогле.цом, Линук.Нет итд. Будући да ово не врши преусмеравање протокола, попут ХТТП-а на ХТТП-ове, то се мора урадити ручно као у другом примеру.

врати 301 $ шема: // $ хост / патх;
иф ($ шема != "хттпс")
ретурн 301 хттпс: // $ хост $ рекуест_ури;

Још један користан случај употребе ретурн директиве је могућност укључивања променљивих регуларних израза, али за то би регуларни израз требао бити наведен у блоку локације и требало би да ухвати образац, а затим се ухваћени образац може комбиновати са постојећим УРЛ-ом у ретурн директиви у сврху преусмеравања, на пример у следећем примеру, када се поднесе захтев за приступ текстуалној датотеци, он бележи име текстуалне датотеке у блоку локације, затим прослеђује то име директиви за повратак, а затим га враћа комбинација са постојећим УРЛ за преусмеравање захтева у други директоријум.

локација ~ * ^ / ([^ /]+.ткт) $
повраћај 301 / хром / 1 УСД;

Препиши

Преписивање је директива која се користи за интерно преписивање УРЛ-ова на веб серверу без излагања основног механизма клијентској страни. Према синтакси, користи се са регуларним изразима. Основна синтакса гласи:. Резервисано место регуларног израза служи за употребу регуларних израза, заменљиво резервирано место је за замену подударне УРЛ адресе, док је заставица за манипулисање током извршавања. Тренутно су заставе коришћене у директиви за преписивање бреак, перманент, редирецт и ласт.

преписати замену регуларног израза [заставица];

Пре него што наставите са регуларним изразима, заменама, хватањем обрасца и променљивом, важно је знати о томе како заставице чине да се интерни мотор Нгинка понаша. Постоје четири главне заставице које се користе са директивом за преписивање, као што је раније објашњено, међу њима се трајне, преусмеравајуће заставице могу упарити заједно јер обе имају исту функционалност, што значи преусмеравање.

Преусмеравање

Ознака за преусмеравање користи се за означавање прегледача да је преусмеравање привремено, што је такође корисно код пописивача претраживача да препознају да је страница привремено одмакнута и да ће бити враћена на првобитно место нешто касније. Када страница сигнализира да је 302, претраживачи не врше никакве промене у њеном индексирању, па посетиоци приликом претраживања и даље виде оригиналну страницу у индексу претраживача, што значи да стара страница није уклоњена и, поред тога, сви квалитативни , попут ранга странице, сок од везе се не прослеђује на нову страницу.

локација /

препиши ^ хттп: // 155.138.КСКСКС.КСКСКС / преусмеравање путање;

Стални

Трајна застава користи се за означавање прегледача да је преусмеравање трајно, што је такође корисно код пописивача претраживача да препознају да је страница трајно одмакнута и НЕЋЕ се касније вратити на првобитно место, попут привременог премештања. Када страница сигнализира да је 301, претраживачи врше неке промене у њеном индексирању, па стога посетиоци при претраживању виде нову страницу у индексу претраживача уместо старе, што значи да се стара страница замењује новом, поред тога, све квалификовани, попут ранга странице, сок од линкова преносе се на нову страницу.

локација /

препиши ^ хттп: // 155.138.КСКСКС.КСКСКС / путања трајна;

Регуларни израз, хватање обрасца и променљиве.

Нгинк у великој мери користи Регуларни израз са директивом за преписивање, па је стога знање о Регуларним изразима врло корисно у овом сегменту.  Постоји више врста регуларних израза, али Нгинк користи Перл компатибилне регуларне изразе зване ПЦРЕ. Поседовање алата за тестирање регуларних израза корисно је да бисте се уверили да написани образац заиста претходно функционише користећи га у Нгинк датотеци за конфигурацију. Овај водич препоручује хттпс: // регек101.цом / као алат, а сви следећи примери се темељно испитују горе поменутим алатом.

Регуларни изрази

препиши ^ / фр / (.*) $ хттп: // нуцута.цом / $ 1 трајно;

Типичан образац директиве о преписивању иде као горе, садржи директиву о преписивању на почетку, затим размаком „образац“ у регуларном изразу, затим размаком „замена“, па на крају „застава“. Директива за преписивање може се поставити било где у заградама сервера, али препоручује се да је задржите након навођења директива Листен, Наме_Сервер, роот и Индек. Када посетилац упути захтев серверу, УРЛ се шаље заједно са захтевом, а ако се УРЛ подудара са узорком регуларног израза наведеним у директиви за преписивање, преписује се на основу замене, а затим се извршава ток извршења на основу на застави.

Узорак регуларног израза користи заграде да означи групу чији се подниз извлачи из УРЛ-а након поклапања регуларног израза са УРЛ-ом захтева, а затим се тај подниз који је извађен из УРЛ-а додељује променљивој у „Замена“ преписивања директиве. Ако постоји више подударних група, подниз сваке подударне групе додељује се променљивима у „замени“ бројевним редоследом, што значи да је подниз прве подударне групе додељен првој променљивој ($ 1), поднизу друга подударна група додељује се другој променљивој ($ 2), и тако даље.

Од 4 заставице, 2 заставице су већ објашњене у овом водичу, преостале су последње и прекидају се. Пре него што схватите како функционишу преостале заставице, важно је разумети како се Нгинк мотор понаша са директивама за преписивање. Када се УРЛ пошаље заједно са захтевом, Нгинк механизам покушава да га усклади са блоком локације. Било да се подудара или не, ако се налети на директиву попут преписивања, ретурн, извршава се секвенцијално. Ако се послати УРЛ подудара са узорком директиве за преписивање, Нгинк енгине извршава целу конфигурациону датотеку, без обзира на то где је директива за преписивање наведена као петља, све док се ново преписана УРЛ адреса не подудара са једним од блокова локације.

Следећи УРЛ се користи као демонстрација да би се објаснило како обе заставице чине да се ток извршења Нгинк мотора понаша са директивом о преписивању. Следећи снимак екрана приказује структуру датотека веб сервера.

хттп: // 155.138.КСКСКС.КСКСКС / прегледач / узорак.ткт (УРЛ послата као захтев)

Када се не користи застава

Када се не користи ниједна заставица, обе директиве за преписивање извршавају се узастопно; стога се прва УРЛ адреса на следећој листи претвара у 2нд, затим 2нд УРЛ се претвара у последњу УРЛ, па када се узорак.ткт датотека у директоријуму прегледача, веб сервер заправо служи узорак.ткт датотеку у основној фасцикли. Будући да је преписивање УРЛ-ова у потпуности апстраховано од прегледача, не види никакву разлику у послуживању у поређењу са директивом о повратку која наводи прегледач да ли је захтев преусмерен или не са ХТТП бројем.

  1. хттп: // 155.138.КСКСКС.КСКСКС / прегледач / узорак.ткт
  2. хттп: // 155.138.КСКСКС.КСКСКС / хром / узорак.ткт
  3. хттп: // 155.138.КСКСКС.КСКСКС / узорак.ткт
локација /

препиши ^ / бровсер / (.*) $ / хром / $ 1;
препиши ^ / цхроме / (.*) $ / $ 1;
локација / хром
три_филес $ ури $ ури / = 404;

Када је „Бреак“ или „Ласт Флаг“ наведена изван блока локације

Када је прекид или задња заставица наведена изван блока локације, директиве за преписивање након одговарајуће директиве за преписивање уопште се не рашчлањују, на пример у следећем примеру УРЛ адреса захтева се преписује у 2нд један на следећој листи без обзира на кориштену заставу и то је то.

  1. хттп: // 155.138.КСКСКС.КСКСКС / прегледач / узорак.ткт
  2. хттп: // 155.138.КСКСКС.КСКСКС / хром / узорак.ткт
локација /

препиши ^ / бровсер / (.*) $ / цхроме / $ 1 ласт; #бреак
препиши ^ / цхроме / (.*) $ / $ 1 последњи; #бреак
локација / хром
три_филес $ ури $ ури / = 404;

Када се последња застава користи унутар блока локације

Када се последња застава користи унутар блока локације, он престаје да рашчлањује више смернице за преписивање унутар тог одређеног блока локације и упада у следећи блок преписивања локације ако се преписана УРЛ адреса подудара са стазом тог блока локације, а затим извршава следећа директива о преписивању унутар ње.

  1. хттп: // 155.138.КСКСКС.КСКСКС / прегледач / узорак.ткт
  2. хттп: // 155.138.КСКСКС.КСКСКС / хром / узорак.ткт
  3. хттп: // 155.138.КСКСКС.КСКСКС / узорак.ткт
локација /
препиши ^ / бровсер / (.*) $ / хром / $ 1 последњи;

локација / хром
препиши ^ / цхроме / (.*) $ / $ 1 последња;
три_филес $ ури $ ури / = 404;

Када се застава прекида користи унутар блока локације

Бреак застава, с друге стране, када се налази унутар блока локације, зауставите рашчлањивање више директива за преписивање, без обзира на то где се налазе, када се једна директива за преписивање подудара са УРЛ-ом захтева, и служи садржај кориснику.

локација /
препиши ^ / бровсер / (.*) $ / цхроме / $ 1 бреак;

локација / хром
препиши ^ / цхроме / (.*) $ / $ 1 пауза;
три_филес $ ури $ ури / = 404;

Закључак

Преписивање УРЛ адреса је поступак преписивања УРЛ адреса унутар веб сервера. Нгинк пружа више директива као што су ретурн, реврите, мап директиве како би то омогућио. Овај водич приказује шта су ретурн и реврите директиве и како се користе за лако преписивање УРЛ-ова. Као што је приказано у примерима, директива ретурн је погодна за сигнализирање прегледача, а претраживач претражује где се страница налази, док је директива реврите корисна за апстраховање процеса преписивања УРЛ-а, а да не дозволи прегледачу да зна шта се дешава иза сцене. Ово је врло корисно за приказивање садржаја путем ЦДН-а, кешираног сервера или са друге локације у мрежи. Корисници никад не знају одакле извор долази, јер прегледач приказује само УРЛ који им је дат.

Контролишите и управљајте кретањем миша између више монитора у оперативном систему Виндовс 10
Двоструки приказ миша омогућава вам контролу и конфигурисање кретања миша између више монитора, успоравајући његово кретање близу границе. Виндовс 10/...
ВинМоусе вам омогућава да прилагодите и побољшате кретање показивача миша на Виндовс рачунару
Ако желите да побољшате подразумеване функције показивача миша, користите бесплатни програм ВинМоусе. Додаје још функција које ће вам помоћи да на нај...
Леви тастер миша не ради у оперативном систему Виндовс 10
Ако уз преносни рачунар или стони рачунар користите наменски миш, али тастер миша не ради у оперативном систему Виндовс 10/8/7 из неких разлога, ево н...