Điểm:0

chỉ thị vị trí nginx không trả về trạng thái http

lá cờ us

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;
}
Điểm:1
lá cờ za

Bởi vì mọi thứ trở nên khó chịu khi bạn sử dụng lợi nhuận không ràng buộc với bất kỳ địa điểm {}. Đặt của bạn trả lại 412 phía trong địa điểm / {} và sẽ có hạnh phúc và niềm vui.

Tái bút Khi máy chủ web của bạn trả về câu trả lời trống, bạn nên sử dụng trạng thái 204, không phải 200. Cả hai đều hoạt động, nhưng 204 cho thấy bạn biết mọi thứ.

lá cờ us
Cảm ơn. Tôi đến từ nền tảng Windows và chỉ cho rằng câu lệnh `return` là do đoản mạch và đã thoát khỏi cấu hình. Đã thêm một khối `vị trí / { } ` cụ thể và tất cả đều ổn.

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