Lưu ý: Tôi đã đọc qua một số Hỏi/Đáp về SO, ServerFault, v.v... nhưng dường như không có câu trả lời nào hiệu quả.
Chạy máy chủ web AWS ec2 Ubuntu (v20.04) với cấu hình nginx (v1.18) cơ bản. Tuy nhiên, các địa điểm
chỉ thị cho /a-custom-path
trả lại mã trạng thái http là 200 không bao giờ được xử lý và/hoặc được xử lý và bỏ qua.
Đây là cấu hình:
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
tên máy chủ _;
vị trí /a-custom-path {
truy cập_đăng xuất;
add_header Văn bản kiểu nội dung/đơn giản;
trả lại 200 'OK';
}
truy cập_log /var/log/nginx/unknown.log;
trả lại 412;
}
Các vị trí /a-custom-path
không bao giờ trả lại trạng thái 200; nó luôn rơi vào phản hồi 412. Tôi đã thử nhiều chỉ thị vị trí khác nhau, chẳng hạn như:
vị trí /a-custom-path
vị trí /a-custom-path/
vị trí = /a-custom-path
vị trí = /a-custom-path/
Tuy nhiên, tất cả chúng đều có chung một hành vi rơi vào 412
phản ứng.
Câu hỏi
Làm cách nào tôi có thể tạo đường dẫn vị trí tùy chỉnh trả về phản hồi 200 và tất cả các yêu cầu khác trả về phản hồi 412?
Chỉnh sửa - Cấu hình đã sửa đổi & đang hoạt động
Đối với bất kỳ ai khác tìm thấy câu hỏi này, đây là giải pháp làm việc cuối cùng dựa trên câu trả lời được chấp nhận:
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
tên máy chủ _;
# mọi thứ trừ '/a-custom-path' đều nhận được phản hồi 412
địa điểm / {
trả lại 412;
}
vị trí /a-custom-path {
trả lại 200 'OK';
truy cập_đăng xuất;
add_header Văn bản kiểu nội dung/đơn giản;
}
truy cập_log /var/log/nginx/unknown.log;
}