2014-09-11 9 views
6

Potrzebuję do tylko serwować pliki .vmdk i .vmx na serwerze wirtualnym, bez względu na poziom katalogu. To jest moja obecna konfiguracja (teraz służy wszystkim, ale jeśli odkomentowaniu dolną część służy nic):NGINX: podawaj TYLKO określone typy plików we wszystkich katalogach

server { 
    listen 80; 
    server_name vmdk; 

    access_log /var/log/nginx/localhost.access.log; 
    root /srv/vmdk/public; 

    location ~ (./?|\vmdk|\vmx)$ { 
      autoindex on; 
    } 


    #location/{ 
    #  deny all; 
    #} 

} 

Jak to osiągnąć?

Jeśli jest to łatwiejsze do osiągnięcia przy pomocy Apache, to przykładowa jest również konfiguracja Apache.

+0

Ty regexp jest dziwne. –

+0

@AlexeyTen To prawdopodobnie błąd. –

Odpowiedz

5

To powinno działać

server { 
    listen 80; 
    server_name vmdk; 

    access_log /var/log/nginx/localhost.access.log; 
    root /srv/vmdk/public; 

    location/{ 
     deny all;      # deny by default 

     location ~ "\.(vmdk|vmx)$" { 
      allow all;    # allow vm disk images, etc. 
     } 

     location ~ "/$" { 
      allow all; 
      autoindex on;    # allow listing directory contents 
     } 
    } 
} 
+0

Otrzymuję 403 Zabrania się tej konfiguracji. –

+0

Jeśli dodaję "test.vmdk" w "/", mogę otworzyć "/test.vmdk", ale nie mogę zobaczyć katalogu zawierającego nigdzie, czego potrzebuję. –

+0

'error.log' mówi:' * 1 dostęp zabroniony przez regułę, '' –

Powiązane problemy