Điểm:2

403 trong nginx khi truy cập thư mục

lá cờ cn

Tôi đã tạo một máy chủ rất đơn giản để kiểm tra xem URL có thư mục hoạt động như thế nào trong nginx. Nginx đang chạy trong docker (nginx:hình ảnh mới nhất).Nginx chạy người dùng nginx (mặc định đặt trong /etc/nginx/nginx.conf).

người phục vụ {
        server_name example.com;

        địa điểm /thử nghiệm/ {
                gốc/var/www/kiểm tra;
                chỉ số index.html;
        }
}

và cấu trúc này:

/var/www
âââ kiểm tra
    âââ index.html

con mèo /var/www/test/index.html
Bài kiểm tra

ls -l /var/ | grep www
drwxr-xr-x 3 root root 4096 Ngày 15 tháng 1 23:33 www

ls -l /var/www/kiểm tra/
-rw-r--r-- 1 root gốc 7 ngày 15 tháng 1 21:08 index.html

Bây giờ tôi có vấn đề này:

cuộn tròn http://example.com/test/
<html>
<head><title>403 Bị cấm</title></head>
<body>
<center><h1>403 Bị cấm</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>
cuộn tròn http://example.com/test
<html>
<head><title>301 Đã di chuyển vĩnh viễn</title></head>
<body>
<center><h1>301 Đã di chuyển vĩnh viễn</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>

Tôi mong đợi để xem "Kiểm tra" khi tôi truy cập http://example.com/test hoặc http://example.com/test/. Tôi đang làm gì sai?

Điểm:0
lá cờ us

Hai điều riêng biệt đang xảy ra.

nginx nối ​​thêm URI yêu cầu vào cuối đường dẫn của nguồn gốc chỉ thị khi phục vụ yêu cầu. Trong trường hợp của bạn, URL là, http://example.com/test, URI chuẩn hóa là /kiểm tra và của bạn nguồn gốc/var/www/kiểm tra.

Điều này làm cho nginx tìm kiếm index.html Trong /var/www/test/test/index.html.

Để tạo máy chủ nginx /var/www/test/index.html, bạn cần phải sử dụng:

gốc /var/www;

hoặc

bí danh /var/www/test;

sử dụng nguồn gốc là cách ưa thích.

Cho http://example.com/test một phần, nginx gửi chuyển hướng 301 đến http://example.com/test/ khi có một thư mục kiểm tra trên máy chủ.Câu hỏi của bạn không hiển thị những gì là nguồn gốc chỉ thị ở cấp trên, vì vậy tôi không biết sự tồn tại của con đường nào kiểm tra được kiểm tra.

PhilHarmonie avatar
lá cờ cn
Nhưng tại sao tôi không thấy 404 cho `/var/www/test/test/index.html`?
lá cờ us
Trên thực tế, nginx trả về 403 cho yêu cầu `http://example.com/test/` và 404 cho yêu cầu `http://example.com/test/index.html` với cấu hình hiện tại của bạn. Tại sao chính xác nginx hoạt động như thế này, tôi không biết.

Đă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.