що таке розташування nginx ~ * і ~


15

Я намагаюся зрозуміти nginx трохи краще і намагаюся сформувати регулярний вираз, де кожна URL-адреса, яка НЕ ​​відповідає /api/postdataV1, перенаправляється на інший кластер серверів. Я продовжую бачити ці дві речі на прикладах без пояснень

location ~ {some regex}

location ~* (some regex}

Перше моє запитання: що це, ~і ~*(я думаю, що ~справедливі засоби я вказую регулярний вираз?), А як бути ~*тоді?

Я думаю, що я хочу, це і є. Це було б правильно?

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

Це було б правильно? а як же ~*... я цього не розумію

спасибі, Діне


Вікі завжди варто спочатку переглянути.
той хлопець звідти

1
Я переглянув документи, але просто не знайшов потрібних посилань і опинився на сторінці документації для "розташування", який дійсно повинен мати цю інформацію, але не став. (Вікі, наскільки я пам'ятаю, назвав мене документацією як найбільш актуальною).
Дін Гіллер

Я б google nginx location, перший хіт це :), але я повинен визнати, треба звикнути до nginx-документації, esp. знаходження потрібних матеріалів під розділом модулів.
той хлопець звідти

1
моя перша сторінка google, що використовує ваш пошуковий запит, саме те, що я прочитав уперше ... wiki.nginx.org/HttpCoreModule, який у RED каже, що стаття застаріла, ведучи мене до іншої сторінки (ви повинні знати, що goegle yeilds має різні результати на основі про те, хто ви - якщо ви ввійшли в систему - і на якому сервері ви потрапляєте). Я не потрапив на сторінку, подану нижче, взагалі, яка хиталася за допомогою Google і читала :( !!!
Дін Хіллер

Відповіді:


16

Як зазначено в документації на nginx , ~*регулярний вираз призначений для невідповідності регістру та відповідності ~регістру.

З вашим синтаксисом нормально, але його можна переписати без регулярного вираження (найкоротше місце буде останнім у відповідності запиту):

location /api/postdata {
}

location / {
}

1
ах, круто ... так, я спробував googling ~ *, але google не надто добре індексує спеціальні символи (занадто поганий nginx замість цього не використовував директиви, як, напевно, я б приземлився прямо на цій сторінці)
Дін Хіллер,

@DeanHiller Схоже, що Google виправив цю помилку: D
Yarek T

Ваш відповідь не може бути правильним , як /api/PostDataне буде відповідати без~*
DEVY
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.