в какую сторону копать.
для всего сервера включена basic_auth, но есть урлы вида http://example.com/api/user/list, для которых авторизацию требуется отключить.
проблема в том, что директории api в проекте нет, урлы эти генерируются непонятно каким образом и, например, условный location ^~ /api/ прописать не выходит. возможно ли средствами nginx отключить авторизацию для определенных ури?
тут ты сам себе противоречишь. сначала пишешь, что “непонятно каким образом”, а потом пишешь “для определённых uri"
не правильно выразился, пардон. uri строятся по одному принципу, но где и как они создаются я пока что не понял, документации по проекту нет
что-то типа такого: set $auth_basic off; if (тут_проверка_uri_по_карте) { set $auth_basic "Restricted area!"; } auth_basic $auth_basic; auth_basic_user_file passwds;
у тебя явно какие-то проблемы с костылями 🙂
любые правила подразумевают какое-то условие. если нет условия, то... ну такое. плюс зависит от того, как аутх настроен. Если используется satisfy, то auth_basic off недостаточно будет.
ну если “строятся по одному принципу”, то придумай регулярку под них
составить локейшены правильно, в тех где нужна авторизация прописать её, где нет не прописывать.
если не сложно, то прошу пример показать) я делал так: location ^~ /api/ { basic_auth off; } и это не работает
это просто еще одно решение, не менее и не более криворукое, чем мое )) у него может быть 50 локейшенов, прописывать в каждый как минимум не удобно (я не утверждаю, что у него столько много, но вдруг?)
Виталий, Владимир предлагает в каждом location, где нужно запрашивать basic аутентификацию, добавить настройки basic аутентификации, где не нужно запрашивать - убрать настройки basic аутентификации
падажжы. покажи сперва, как аутх сам настроен.
если таких решений как твоё будет много, со временем такую конфигурацию понимать и обслуживать станет сложнее, а ещё if не рекомендуется к использованию в таком ключе. Скажи что разработчик nginx обманывает))
а ещё тут даже при твоём подходи иф нахрен не впёрся
видишь ли, мой вариант не бесспорный, как и твой. твой вариант более каноничен, но более затратен в сопровождении при определенных условиях. мой менее каноничен. оба варианта прекрасно работают и степень криворукости у них, на мой взгляд, одинакова
вот так на данный момент server { auth_basic "dev"; auth_basic_user_file /etc/nginx/.htpasswd;
напротив в сопровождении лучше мой вариант, а твой накидал и дальше мучайтесь
вот это уже субъективно. все фломастеры на вкус и цвет разные, поэтому спорить о вкусовщине, особенно пытаясь унизить на этой почве собеседника, дело не хорошее 🙂
allow all; добавь туда ышшо. пока парни мажут друг друга говном, поэкспериментируй
ну конечно субъективно)), а ещё мнение разработчика Сысоева тоже субъективное, объективен только ты)
ну и что Сысоев? сказал он разок в лохматые времена, что if то да се, это не значит, что надо вставать строем в ширенгу и делать только так. времени с тех пор утекло много )) и снова, на мой взгляд, это вкусовщина.
боюсь ты даже не в курсе что именно он сказал и когда
видел я то выступление, Владимир. даже несколько раз
и что он там про иф говорит и как его надо использовать?
я думаю, что ты тоже на память не процитируешь 🙂 Владимир, давай уже мириться, что же ты никак навстречу-то не пойдешь 🙂
это основы на которые я опираюсь, и их я помню на память, ты потому и костылишь что не запоминаешь их), вот к чему я клоню)), а ты говоришь смотрел несколько раз. Смотрел, да не увидел к сожалению.
Обсуждают сегодня