Tôi đang cố gắng hiểu cách Nginx hoạt động. Bây giờ tôi đang làm việc trên mục lục
và try_files
chỉ thị. Tập tin cấu hình của tôi là thế này:
sự kiện {}
http {
viết lại_log vào;
error_log /var/log/nginx/localhost.error_log gỡ lỗi;
người phục vụ {
gốc/ứng dụng;
nghe 8080 ;
chỉ số index.html;
địa điểm / {
try_files $uri $uri/ =404;
}
}
}
Cũng thế /ứng dụng/
thư mục cây là:
/ứng dụng
|-- abcd.html
|-- tập tin.php
|-- index.html
|-- index.php
|-- sss
| `--index.html
|-- style.css
`--thumb.png
Khi tôi cố mở máy chủ cục bộ:8080
mọi thứ hoạt động như mong đợi. Đầu tiên nó sử dụng địa điểm /
bối cảnh. Sau đó sử dụng $uri/
để đọc thư mục gốc. Sau đó, vì tên tệp chỉ mục đã được chỉ định, nên nó sử dụng tệp chỉ mục trong thư mục đó. Ngoài ra, tệp nhật ký có thể chỉ ra rằng:
...
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 vị trí thử nghiệm: "/"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 sử dụng cấu hình "/"
...
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 giai đoạn chung: 12
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 thử trình xử lý tệp
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 tập lệnh http var: "/"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 đang cố sử dụng tệp: "/" "/app/"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 tập lệnh http var: "/"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 đang cố sử dụng dir: "/" "/app/"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 thử tệp uri: "/"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 giai đoạn chung: 13
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 giai đoạn nội dung: 14
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 mở chỉ mục "/app/index.html"
27/10/2021 11:37:49 [gỡ lỗi] 1297#1297: *1 chuyển hướng nội bộ: "/index.html?"
...
Nhưng khi tôi mở máy chủ cục bộ:8080/sss
, Đầu tiên, nó phản hồi bằng cách chuyển hướng đến máy chủ cục bộ:8080/sss/
, sau đó mở tệp chỉ mục bên trong sss/
danh mục. Đây là nhật ký:
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 vị trí thử nghiệm: "/"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 sử dụng cấu hình "/"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 http cl:-1 max:1048576
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 giai đoạn viết lại: 3
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 giai đoạn viết lại bài đăng: 4
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 giai đoạn chung: 5
...
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 thử trình xử lý tệp
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 Tập lệnh http var: "/sss"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 đang cố sử dụng tệp: "/sss" "/app/sss"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 Tập lệnh http var: "/sss"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 cố gắng sử dụng dir: "/sss" "/app/sss"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 try file uri: "/sss"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 giai đoạn chung: 13
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 giai đoạn nội dung: 14
...
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 giai đoạn nội dung: 18
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 tên tệp http: "/app/sss"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 thêm dọn dẹp: 000055AA4A146290
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 http fd tĩnh: -1
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 http dir
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 http hoàn tất yêu cầu: 301, "/sss?" a:1, c:1
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 http phản hồi đặc biệt: 301, "/sss?"
27/10/2021 11:46:07 [gỡ lỗi] 1297#1297: *3 http đặt nội dung hủy bỏ
...
Tại sao nó không phản hồi với tệp chỉ mục bên trong sss/
thư mục, giống như thư mục gốc, không có chuyển hướng bên ngoài?