2011-08-22 34 views
3

我使用下面的代碼:如何通過Nginx Auth允許來自本地主機的呼叫?

location/{ 
    satisfy any; 
    allow 127.0.0.1; 
    deny all; 
    auth_basic "closed site"; 
    auth_basic_user_file conf/htpasswd; 
} 

但是當我做curl -I "http://mysite.com"返回401 :(
我如何讓本地主機

編輯:
我用這對本機Amazon EC2實例。

好吧,

我並沒有意識到,Amazon EC2實例會調用它的extern al /公共IP,當你打電話給mysite.com :)

多麼愚蠢。

因此,我接受@Capilé對他提到的主機文件解決方法的回答。

回答

5

這是正確的,但可能mysite.com沒有達到服務器的127.0.0.1接口。如果你嘗試curl -I "http://127.0.0.1"(或任何本地主機別名),你應該得到它。

或者,您可以添加mysite.com爲127.0.0.1通過/ etc/hosts文件(C:\ WINDOWS \ SYSTEM32 \ drivers \ etc下\在Windows主機上):

127.0.0.1 mysite.com 

乾杯,

+0

+1爲你的主機文件替代 – Shrinath

+0

所以我'允許127.0.0.1''我的nginx,當我去127.0.0.1/passwd_dir時,我被允許在沒有pwd。但是當我到localhost/passwd_dir時,它需要pwd。除127.0.0.1之外,我如何允許本地主機? 'allow localhost'不起作用,它出錯 – Dubslow

+0

啊只是偶然發現了我自己評論的答案,通過查看日誌:默認情況下,localhost呈現給IPv6,所以一個簡單的'allow :: 1'解決了我的問題。 – Dubslow

相關問題