2013-01-24 17 views
5

Pochodzę z apache2 jednej funkcji, której nie mogę osiągnąć; wymagać uwierzytelnienia wyłącznie dla dostępu zewnętrznego, ale bezpłatnego dostępu do użytkowników w mojej sieci lokalnej. Jakieś pomysły, jak łatwo poradzić sobie z tym scenariuszem?Autoryzacja Nginx z wyjątkiem tych w sieci lokalnej

Każda pomoc zostanie doceniona.

Odpowiedz

5

ja usunąłem poprzednią odpowiedź i chciałaby zaproponować rozwiązanie, jakie przewidziane poniżej

Zrobiłem małe poszukiwania i znalazłem to rozwiązanie problemu - w kodzie, gdzie można korzystać auth_basic dyrektywy, wprowadź takie zmiany::

satisfy any; 
allow  10.0.0.1/8 // give access for all internal request 
deny  all; 
auth_basic "...."  // your auth_basic code goes here 
auth_basic_user_file ... // your auth_basic_user_file goes here 

Jak to działa? Dyrektywa satisfy zakłada, że ​​any lub all z następnych reguł dostępu przychodzącego muszą zostać przekazane, aby dać dostęp do zasobu. można znaleźć więcej szczegółów tutaj: satisfy

ten powinien pasować idealnie problemu;)

+0

Próbowano dodać zmienną, ale wydaje się, że nginx nie podoba: nginx -t [emerg]: „auth_basic "dyrektywa nie jest tutaj dozwolona – Stefan

+0

Czy używasz uwierzytelniania dla całego serwera (w' bloku' '' lub tylko w niektórych blokach 'lokalizacji'? – emka86

+0

w bloku "location /". – Stefan

Powiązane problemy