Ну, если принципиально (а автор писал, что его смущает лишь кроссдоменность), до для авторизации можно сделать отдельный server{} на IP (без домена) или даже лучше порту. Допустим, получим следующую схему: - Заходим на 1.2.3.4:1025/domain - Ставим куку - Редиректим на domain.
Один из вариантов. 08.05.2013, 13:27, "Danila Shtan" <dan...@shtan.ru>: > Проблема с auth_basic не в том, как её наследовать, а в том, что на > domain.com, site.domain.com, trash.domain.com пользователю придется вводить > пароли отдельно. > > Д. > > 2013/5/8 Васильев "Zmey!" Олег <zmey1...@ya.ru> >> Занесите auth_basic в контекст http {}, все server{} внутри унаследуют его >> (только что проверил). >> >> 05.05.2013, 18:23, "psixo...@gmail.com" <psixo...@gmail.com>: >>> Здравствуйте, Nginx-ru. >>> >>> Дано: домен с большим количеством поддоменов. Задача: >>> открыть доступ только для ограниченного круга лиц, включая мобильные >>> клиенты. Крайне желательно ограничиться средствами nginx, не >>> вмешиваясь в скрипты сайта. Авторизация нужна только для того, чтобы >>> не могли зайти люди "с улицы". Т.е. вполне подойдет что-то слабенькое, >>> как, например, факт наличия куки у клиента и т.п. Никак не могу >>> придумать, как это реализовать. >>> Basic-авторизация не подходит, т.к. она не кроссдоменная. >>> Рассматривал вариант когда сайт не пускает никого, у кого >>> нет определенной куки, а получить ее можно, зайдя на определенный урл >>> внутри сайта. Возникли проблемы с внесением изменений в текущую >>> конфигурацию nginx: >>> >>> if ($cookie_edws != '1033'){ >>> return 444; >>> } >>> >>> location = /auth_url { >>> add_header Set-Cookie >>> "lcid=1033;Domain=.domain.com;Path=/;Max-Age=31536000"; >>> rewrite ^(.*)$ domain.com persistent; >>> } >>> >>> if (!-e $request_filename) { >>> rewrite ^(.*)$ /index.php break; >>> } >>> >>> Таким образом, если физически auth_url не существует, то управление в >>> location = /auth_url не попадет никогда, а всегда будет передано в if >>> (-e $request_filename). Даже если вмешаться в структуру сайта (что >>> неприемлимо) и создать файл auth_url, то в location управление не >>> попадет из-за существования if ($cookie_edws != '1033'). Замкнутый >>> круг какой-то. >>> >>> Может многоуважаемый All подскажет как быть? >>> >>> -- >>> С уважением, >>> Psixozzz mailto:psixo...@gmail.com >>> >>> _______________________________________________ >>> nginx-ru mailing list >>> nginx-ru@nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > , > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru