Nginx: Phục vụ các tệp tĩnh trong một thư mục nhất định - một mức quá sâu


13

Tôi khá mới với cấu hình nginx. Tôi đang gặp một số khó khăn với một vấn đề khá cơ bản. Tôi muốn lưu trữ một số tệp tĩnh tại / doc (index.html, một số hình ảnh, v.v.). Các tập tin được đặt trong một thư mục có tên / sites / mysite / proj / doc /.

Vấn đề là, với cấu hình nginx bên dưới, nginx cố gắng tìm kiếm một thư mục có tên "/ sites / mysite / proj / doc / doc". Có lẽ điều này có thể được khắc phục bằng cách đặt gốc vào / site / mysite / proj /, nhưng tôi không muốn để lộ các tài sản (không tĩnh) khác trong thư mục proj /. Và vì nhiều lý do, tôi thực sự không thể di chuyển thư mục doc / từ vị trí của nó.

Tôi nghĩ rằng có một cách để sử dụng quy tắc Viết lại để giải quyết tình huống này, nhưng tôi không thực sự hiểu tất cả các phần, do đó gặp một số khó khăn khi xây dựng quy tắc.

rewrite ^/doc/(.*)$ /$1 permanent;

Tôi cũng đã bao gồm một ví dụ hoạt động về việc lưu trữ các tệp trong thư mục / site / mysite / htdocs / static /.

> vim locations.conf

location /static {
    root   /sites/mysite/htdocs/;
    access_log   off;
    autoindex  on;
}

location /doc {
    root   /sites/mysite/proj/doc/;
    access_log   on;
    autoindex  on;
}


2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"

Có ai có ý tưởng làm thế nào tôi có thể đi về việc phục vụ nội dung tĩnh này không?

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.