Phản hồi HTTP 304 trong phiên theo dõi

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Dấu hiệu

Trong Edge cho Đám mây riêng, khi theo dõi một API trong giao diện người dùng Edge, bạn sẽ thấy phản hồi HTTP 304 trong cột Trạng thái của cửa sổ theo dõi:

Thông báo lỗi

Không có thông báo lỗi – lệnh gọi proxy API thực sự trả về một phản hồi thành công, chẳng hạn như HTTP 200. Tuy nhiên, cửa sổ dấu vết trong giao diện người dùng Edge sẽ hiển thị phản hồi HTTP 304 và không có dữ liệu dấu vết nào được thu thập.

Các nguyên nhân có thể

Trong Edge cho Đám mây riêng tư, Giao diện người dùng Edge đang cố gắng theo dõi một proxy API được truy cập bằng địa chỉ IP riêng tư.

Công cụ theo dõi trong giao diện người dùng Edge có khả năng gửi yêu cầu API đến mọi URL. Trong trường hợp triển khai mà Giao diện người dùng Edge được lưu trữ cùng với các dịch vụ nội bộ khác, người dùng độc hại có thể sử dụng sai công cụ theo dõi để gửi yêu cầu đến các dịch vụ thông qua địa chỉ IP riêng, chẳng hạn như máy chủ cục bộ hoặc 127.0.0.1.

Trong môi trường thực tế, bạn thường giữ nguyên giá trị mặc định để ngăn người dùng có thể theo dõi địa chỉ IP riêng tư. Ví dụ: đó là cách triển khai phiên bản công khai của Giao diện người dùng Edge.

Tuy nhiên, đối với môi trường phát triển hoặc kiểm thử nội bộ, bạn có thể ghi đè chế độ mặc định này để cho phép nhà phát triển API của bạn theo dõi mọi địa chỉ IP. Thông thường, môi trường phát triển/kiểm thử nằm sau một tường lửa không cho phép truy cập công khai.

Lưu ý: Tốt nhất là bạn nên giữ nguyên chế độ mặc định để ngăn quyền truy cập vào dấu vết đối với địa chỉ IP riêng tư, ngay cả trong môi trường phát triển/kiểm thử, trừ phi bạn gặp phải trường hợp phải bật chế độ này.

Nguyên nhân: Cố gắng truy cập vào một proxy API thông qua địa chỉ IP riêng tư

Theo mặc định, giao diện người dùng Edge cho Edge cho Đám mây riêng tư sẽ ngăn người dùng theo dõi các lệnh gọi API được thực hiện thông qua địa chỉ IP riêng. Danh sách địa chỉ IP riêng tư bao gồm:

  • Địa chỉ loopback (127.0.0.1 hoặc localhost)
  • Địa chỉ cục bộ của trang web (Đối với IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Mọi địa chỉ cục bộ (mọi địa chỉ phân giải thành localhost)

Ví dụ: lệnh curl sau đây gọi đến một proxy API bằng cách sử dụng địa chỉ IP 127.0.0.1. Địa chỉ này được coi là địa chỉ IP riêng tư:

curl http://127.0.0.1:9001/myapiproxy

Trong cửa sổ theo dõi cho lệnh gọi này, bạn sẽ thấy phản hồi HTTP 304 ngay cả khi lệnh curl trả về thành công.

Độ phân giải

Để cho phép giao diện người dùng Edge theo dõi địa chỉ IP riêng tư cho Edge cho Đám mây riêng tư, hãy đặt mã thông báo sau trong ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Cách đặt thuộc tính này:

  1. Mở tệp ui.properties trong một trình chỉnh sửa. Nếu tệp không tồn tại, hãy tạo tệp.
    vi /opt/apigee/customer/application/ui.properties
  2. Đặt các thuộc tính sau thành true:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Lưu các thay đổi vào ui.properties.
  4. Đảm bảo rằng tệp thuộc tính thuộc sở hữu của người dùng "apigee":
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Khởi động lại giao diện người dùng Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Giờ đây, giao diện người dùng Edge có thể truy cập vào địa chỉ IP riêng tư trong công cụ theo dõi.

Để sau này tắt giao diện người dùng khỏi việc theo dõi các yêu cầu thông qua địa chỉ IP riêng, hãy chỉnh sửa ui.properties để đặt thuộc tính thành false rồi khởi động lại giao diện người dùng Edge.

Để biết thêm thông tin, hãy xem phần Cho phép giao diện người dùng Edge truy cập vào địa chỉ IP cục bộ.