2014-03-05 79 views
4

我試圖通過在nginx中使用簡單的基於主機的訪問控制來限制對我的django應用的管理部分的訪問。 不幸的是Nginx的似乎並沒有被配置請求遵守:通過ip在django與nginx和gunicorn限制訪問管理網址

這是我在nginx的這個特定部分設置:

# gunicorn setup 
location/{ 
    proxy_pass http://127.0.0.1:8000; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 


location /admin/ { # restrict access to admin section 
    allow 192.168.0.1; 
    deny all; 
} 

但這依然阻擋我的IP 192.168.0.1。 我在做什麼錯? 有沒有另一種方法來阻止訪問Django應用程序的/管理/部分?

回答

8

我發現了一個解決這個問題,通過使用以下替換/管理/地點:

location ^~ /admin/ { # restrict access to admin section 
    proxy_pass http://127.0.0.1:8000; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

    allow 192.168.0.1; 
    deny all; 
} 

我希望這會節約一些長期的搜索在互聯網上。 我將不勝感激提供更好的解決方案。