что такое расположение 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 говорит, что статья устарела и ведет меня на другую страницу (вы должны знать, что Google выдает разные результаты на основе о том, кто вы есть (если вы вошли в систему - и какой сервер вы в конечном итоге ударил). Я вообще не попал на страницу, приведенную ниже, которая качалась с помощью Google и читал вокруг :( !!!
Дин Хиллер,

Ответы:


16

Как указано в документации по nginx , ~*регулярное выражение предназначено для сопоставления без учета регистра и ~с учетом регистра.

Ваш синтаксис в порядке, но его можно переписать без регулярных выражений (кратчайшее место идет последним при сопоставлении запроса):

location /api/postdata {
}

location / {
}

1
ах, круто ... да, я пробовал гуглить ~ *, но Google не слишком хорошо индексирует специальные символы (слишком плохо, что nginx не использовал директивы вместо этого, поскольку я, вероятно, попал бы прямо на эту страницу)
Дин Хиллер,

@DeanHiller Похоже, Google исправил эту ошибку: D
Yarek T

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