LINUX.ORG.RU

nginx, парольный и беспарольный доступ в рамках одного конфига ?

 


0

1

Каким образом в рамках одного конфига nginx’a можно организовать доступ к двум портам/интерфейсам, но при этом один запаролить (смотрит «вовне»), а другой - нет (смотрит на локалхост) и не продублировать при этом «server {…}» блок (т.к. это вызовет увеличение конфига в 2 раза, а он довольно большой) ?

я бы с внешнего server сделал proxy_pass на внутренний с добавлением auth_* .

vel ★★★★★
()
Ответ на: комментарий от Deleted

zolden

include

Идея неплохая, но всё же продолжает ту же линию (и плодит лишние сущности), от которой я пытаюсь уйти :\

vel

я бы с внешнего server сделал proxy_pass на внутренний с добавлением auth_* .

Именно так и поступил :) Самый оптимальный вариант, имхо. Сппсибо ;)

Dimez

http://nginx.org/ru/docs/http/ngx_http_core_module.html#satisfy

Так это получается, придётся править каждый location-блок. А если их пара десятков ? И как быть с портами ? В общем, плохо понял, что там к чему :(

Да и не в каждой сборке/версии этот модуль есть по моему :\

Blacksmith
() автор топика
Ответ на: комментарий от Blacksmith

Именно так и поступил :) Самый оптимальный вариант, имхо. Сппсибо ;)

Оверинжиниринг на пустом месте.

Так это получается, придётся править каждый location-блок. А если их пара десятков ?

Один раз поправить, зато потом легко поддерживать кому угодно и читаемо глазами.

Да и не в каждой сборке/версии этот модуль есть по моему :\

Это в какой это сборке/версии выключен http_core_module? :)

Deleted
()
Ответ на: комментарий от Deleted

Оверинжиниринг на пустом месте.

Кому как. Для меня ваше решение предполагает куда больше телодвижений, нежели предложенное vel :)

Один раз поправить, зато потом легко поддерживать кому угодно и читаемо глазами.

Где ? Или добавить дополнительный server-блок с auth* и proxypass'ом на «внутренний» server или 2 десятка строк с any/deny/auth* (в каждый location), при том что шаблон что там, что там один и тот же используется.

Плюс я так и не понял, как в вашем варианте обстоит дело с портами ? Мне нужен доступ по разным портам.

Это в какой это сборке/версии выключен http_core_module? :)

Перепутал с другим модулем. Пардон, мой косяк.

Blacksmith
() автор топика
Ответ на: комментарий от Blacksmith

Кому как. Для меня ваше решение предполагает куда больше телодвижений, нежели предложенное vel :)

А понятие «оверинжиниринг» немного о другом.

или 2 десятка строк с any/deny/auth* (в каждый location), при том что шаблон что там, что там один и тот же используется.

Ну так вынеси его в файл с человеческим названием и подключи вместо 2 десятков строк один include.

Плюс я так и не понял, как в вашем варианте обстоит дело с портами ? Мне нужен доступ по разным портам.

http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen

Deleted
()
Ответ на: комментарий от Deleted

Ну так вынеси его в файл с человеческим названием и подключи вместо 2 десятков строк один include.

А, ну если использовать 2 server-блока с разными портами и подгружать через include конфиг с location’ами, то вполне себе вариант, надо будет из интереса попробовать. Или вы о другом ?

http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen

Я с nginx на «ВЫ». Можно пример конфига с использованием satisfy на несколько портов в разных подсетях, доступ к одному из которых под паролем через auth* ?

Blacksmith
() автор топика
Последнее исправление: Blacksmith (всего исправлений: 1)
Ответ на: комментарий от Blacksmith

Можно пример конфига с использованием satisfy на несколько портов в разных подсетях, доступ к одному из которых под паролем через auth* ?

Так а что там сложного то? Если в конфиге явно не указан IP (listen ip:port), то nginx вешается на 0.0.0.0:port. Соответственно,

satisfy any;
allow 127.0.0.1/32;
deny  all;
auth_basic «closed site»;
auth_basic_user_file conf/htpasswd;

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Так а что там сложного то? Если в конфиге явно не указан IP (listen ip:port), то nginx вешается на 0.0.0.0:port.

Я с nginx работаю от случая к случаю и по нему всё приходится заново «проворачивать» и выяснять, что к чему :( Вот предложенный zolden и немного «разжёванный» вами include тоже кстати подошёл в качестве решения. А вариант с satisfy, если, как я понимаю, вы предложили использовать спарке с include, позволит не разбегаться по портам и использовать разграничения доступа в разных сетях таким образом. Поначалу я вообще не мог сообразить, что к чему в предложенных вариантах и пришлось задавать доп.вопросы и гуглить, что там к чему :(

В любом случае проблема решена, причём несколькими способами. Всем помогавшим - спасибо ;) Если ни у кого не осталось комментариев - через день-другой закрою тред.

Blacksmith
() автор топика
Последнее исправление: Blacksmith (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.