Điểm:2

Cách ánh xạ vị trí thành đường dẫn trong NGINX

lá cờ vn

Tôi có một thiết lập nginx nơi tôi cần ánh xạ các đường dẫn url cụ thể tới đường dẫn máy chủ. Ví dụ tôi cần ví dụ.test/myapp/ để đi đến thư mục sau trong máy chủ: /ứng dụng/myapp/web

Tôi đã thử thêm khối vị trí sau:

vị trí /myapp/
{
    gốc/ứng dụng/myapp/web;
}

nhưng nếu tôi đi đến ví dụ.test/myapp/ hoặc ví dụ.test/myapp Tôi nhận được 404.

Theo như tôi có thể nói theo tài liệu vị trí này sẽ chụp bất cứ thứ gì có đường dẫn bắt đầu bằng /ứng dụng của tôi/ và đó là khối vị trí duy nhất trong máy chủ nên không có khả năng xảy ra xung đột. Ngoài ra, tôi đã thử thay đổi vị trí để trỏ đến thư mục gốc (tức là địa điểm /) và nó hoạt động tốt nên không có vấn đề về đường dẫn máy chủ sai hoặc thiếu tệp. Tôi đang thiếu gì?

Điểm:5
lá cờ us

nginx giải quyết các đường dẫn tệp bằng cách sử dụng chiến lược sau:

  1. Sử dụng đường dẫn từ nguồn gốc chỉ thị
  2. Thêm URI từ yêu cầu sau lệnh.

Bây giờ, trong trường hợp của bạn:

  1. nguồn gốc/ứng dụng/myapp/web.
  2. URI từ ví dụ.test/myapp//ứng dụng của tôi/.

Do đó nginx tra cứu các tệp trong /ứng dụng/myapp/web/myapp/ thư mục cho yêu cầu đó.

Nếu bạn muốn vậy /ứng dụng của tôi/ URI sẽ nhận các tệp từ /ứng dụng/myapp/web/ thư mục, bạn cần sử dụng bí danh chỉ thị:

vị trí /myapp/ {
    bí danh /apps/myapp/web/;
}
lá cờ vn
Cảm ơn! Nơi tôi quay lại với ví dụ trong tài liệu nơi họ nói: `location ~ \.(mp3|mp4) { root /www/media; }` sẽ trả về tất cả các tệp video tại `www/media`. Vì vậy, các vị trí tiền tố nối thêm URI nhưng các vị trí biểu thức chính quy thì không?
lá cờ us
Có, các biểu thức chính quy không nối thêm URI, vì rất khó để xác định phần nào của biểu thức chính quy phù hợp sẽ được thêm vào.
lá cờ co
@Mattia Không, các vị trí biểu thức chính quy tuân theo quy tắc giống như các khối vị trí thông thường, URL `/myapp/test.mp4`, gốc `/www/media` trở thành `/www/media/myapp/test.mp4`
lá cờ vn
sử dụng bí danh dẫn đến kết quả trả về 403 cho mọi thứ. (Tôi biết đó thực sự không phải là vấn đề về quyền vì tôi có thể lưu trữ tệp với các khối vị trí khác trên máy chủ). Nó đã được sửa bằng cách thêm dấu gạch chéo vào sau bí danh: `alias /apps/myapp/web/`. Không chắc sao lại thế...
lá cờ us
Hấp dẫn. Bản thân tôi không sử dụng `alias`, vì vậy tôi không biết nó yêu cầu dấu gạch chéo ở cuối. Thật tốt khi bạn đã tìm ra nó, tôi đã cập nhật câu trả lời của mình.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.