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?
root
theo tài liệu bạn đã đề cập (xem "Khi vị trí khớp với phần cuối của giá trị của lệnh")