Чтобы не передавать мусор на сервер, у меня есть строгое регулярное выражение для location
директивы. Это выглядит так:
location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/...(more|restrict).ext {
# other directives
}
Я хотел бы сложить линию на 80 символов, есть ли способ разделить конфигурацию? Следующее приводит к синтаксической ошибке, но это то, что я ищу:
location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/"\
"...(more|restrict).ext" {
# results in a literal newline (%0A) being accepted
location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/
...(more|restrict).ext" {
Я не смог найти подсказки в документации ( http://wiki.nginx.org/ConfigNotation и http://wiki.nginx.org/HttpCoreModule#location ничего не упомянули о сгибании строк)
nginx
configuration
Lekensteyn
источник
источник
Ответы:
Я не думаю, что вы можете сделать это.
nginx одинаково обрабатывает все пробелы, поэтому даже если вы попытаетесь разделить вашу строку таким образом, и nginx сможет проанализировать ее так, как вы хотели, вы получите регулярное выражение с кучей пробелов, что, я уверен, не так. т то, что вы хотите. Если nginx не смог разобрать его, что более вероятно, вы просто получите синтаксическую ошибку.
Вам просто придется жить с несколькими длинными строками или создавать менее сложные регулярные выражения.
источник
location ".../[a-zA-Z0-9_...-]+$"
шаблоном, за которым следует другойlocation ~ "\.pkg\.tar\.xz$"
внутри. Спасибо за ваш ответ, надеюсь, когда-нибудь появится лучший ответ;)