2013-01-24 25 views
5

来自apache2的一个功能我无法实现;只需要对外部访问进行身份验证,但是可以访问本地网络上的用户。 任何想法如何轻松处理这种情况?Nginx验证除了本地网络上的验证

任何帮助,将不胜感激。

回答

5

我已经删除了我以前的答案,并想建议我提供以下

我做了一点搜索,发现这个问题的解决方案的解决方案 - 在代码中,在您使用auth_basic指令,做出这样的更改

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 

它是如何工作的? satisfy指令意味着必须传入来自下一个访问规则的anyall才能访问资源。你可以在这里找到更多的细节:satisfy

这应该完全适合你的问题。)

+0

尝试添加一个变量,但它似乎nginx的不喜欢它: nginx的-t [EMERG]:“auth_basic “指令在这里是不允许的 – Stefan

+0

你对整个服务器(在'服务器块)还是仅仅在一些位置块使用你的身份验证? – emka86

+0

在“位置/”块中。 – Stefan