Tham chiếu vị trí gốc dưới dạng một biến trong khối máy chủ {}


11

Trong khối máy chủ nginx {} của tôi, tôi đã xác định root bằng một đường dẫn. Làm thế nào sau này tôi có thể tham khảo đường dẫn này?

Đây là những gì tôi đang cố gắng thực hiện:

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

Thật không may, sử dụng $ root không hoạt động (vì tôi chưa xác định nó). Nginx có cung cấp cách truy cập giá trị gốc không?

Câu trả lời:


15

Bạn muốn document_rootbiến.


Làm điều này: root / var / www / foosite / public /; bao gồm $ document_root.ngaccess; Tôi gặp lỗi "nginx: [nổi] open ()" /etc/nginx/$document_root/.ngaccess "không thành công (2: Không có tệp hoặc thư mục như vậy)." $ document_root có vẻ như nó sẽ là giải pháp, nhưng tôi đã gõ sai cái gì chưa? Theo bài đăng này (và những người khác tôi đã gặp) forum.linode.com/viewtopic.php?t=7898 , các biến không thể được sử dụng trong các câu lệnh bao gồm. Mà, nếu đúng, là không may.
skyler

Điều đó ngụ ý rằng nginx chỉ đánh giá includechỉ thị khi khởi động, không phải cho mọi yêu cầu (có ý nghĩa), vì vậy có vẻ như những gì bạn muốn đạt được là không thể.
mgorven

1
Tôi cũng gặp phải một vấn đề ở đây: "Giá trị đường dẫn có thể chứa các biến, ngoại trừ $ document_root và $ realpath_root." nginx.org/en/docs/http/ từ
biên tập viên
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.