2012-02-15 27 views
1

我有一個非常大的CDN清除服務器。它的結構像這樣如何禁用Nginx的索引目錄只允許MaxCDN/NetDNA CDN?

site.com/ 
site.com/assets/ 
site.com/assets/products/3424/imgs/large.jpg 
site.com/assets/products/3424/imgs/med.jpg 
site.com/assets/products/3424/imgs/small.jpg 
site.com/assets/products/3424/xml/xml.xml 
site.com/assets/products/3424/swf/swfvideo.jpg 
site.com/assets/products/3424/html5/video.ogg 
site.com/assets/products/3424/mp3/mp3.jpg 

等等。有大的目錄。我想知道是否可以禁用對目錄列表/ assets /,/ products /,/ 3424 /的所有訪問 - 因此基本上唯一可以看到目錄的人是CDN purge bot。我希望CDN能夠緩存所有索引文件夾和目錄。用戶將看到禁止的目錄,但很明顯,他們可以看到文件..

+0

有一個名爲AutoIndex的nginx模塊,你可以在這裏閱讀它 - http://wiki.nginx.org/HttpAutoindexModule – 2012-02-15 09:51:27

回答

3

我相信這可以通過簡單地增加線路中的虛擬服務器的配置文件與此類似來完成:

server { 
    listen 80; # look familiar? 

    ... 

    # something similar to this 
    if ($remote_addr != cdnIP) { 
    location /assets { 
     deny all; 
    } 
    } 
} 

退房的configuration wiki在nginx的網站上了解更多關於語法和使用配置文件的信息,讓他們知道你想要它們的方式。

+0

如果它們不只是一個IP,它是44.444.33。**或包.bucketbot.netdna.com - 我認爲他們使用不同的拉區機器人? – TheBlackBenzKid 2012-02-15 12:40:25

+0

看起來像然後你可以使用像$ http_host而不是$ remote_addr。查看你可以在nginx配置中操作的[可用變量](http://wiki.nginx.org/HttpCoreModule#Variables) – 2012-02-15 21:46:22