2014-09-11 14 views
6

Tôi cần phải chỉ phục vụ tệp .vmdk và .vmx trên máy chủ ảo, bất kể cấp thư mục là gì. Đây là cấu hình hiện tại của tôi (ngay bây giờ nó phục vụ tất cả, nhưng nếu tôi bỏ ghi chú phần dưới nó không phục vụ gì):NGINX: chỉ phục vụ các loại tệp cụ thể trong tất cả các thư mục

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; 
    #} 

} 

Làm cách nào để đạt được điều này?

Nếu nó dễ dàng hơn để đạt được với Apache, sau đó một ví dụ Apache cấu hình cũng được đánh giá cao.

+0

Bạn regexp là lạ. –

+0

@AlexeyTen Có thể là sai. –

Trả lời

5

này nên làm việc

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

Tôi nhận được 403 Cấm với cấu hình này. –

+0

Nếu tôi thêm một "test.vmdk" vào "/" tôi có thể mở "/test.vmdk", nhưng tôi không thể thấy danh sách thư mục ở bất cứ đâu, mà tôi cần. –

+0

'error.log' nói:' * 1 truy cập bị cấm theo quy tắc, ... ' –

Các vấn đề liên quan