Здравствуйте, Васильев. Вы писали 8 мая 2013 г., 16:36:48:
> Ну, если принципиально (а автор писал, что его смущает лишь кроссдоменность), > до для авторизации можно сделать > отдельный server{} на IP (без домена) или даже лучше порту. Допустим, получим > следующую схему: > - Заходим на 1.2.3.4:1025/domain > - Ставим куку > - Редиректим на domain. > Один из вариантов. Не получится. Не примет браузер куку на левый домен. Даже если повесить отдельный сервер на ip (без домена). только что проверил: server { listen [ip]:123; root /home/mob/; index index.html; location = / { add_header Set-Cookie "edws=1033; expires=Wed, 21-Aug-2014 16:49:59 GMT; path=/; domain=.domain.tld"; rewrite ^(.*)$ http://domain.tld permanent; } } server { ... if ($cookie_edws != '1033'){ return 444; } ... } > 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 -- С уважением, Вадим mailto:psixo...@gmail.com _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru