Định cấu hình trình xử lý thông báo để cho phép tiêu đề trùng lặp

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

Theo Thông số kỹ thuật HTTP RFC 7230, phần 3.2.2: Thứ tự trường, Apigee Edge dự kiến rằng yêu cầu HTTP từ máy khách hoặc phản hồi HTTP từ máy chủ phụ trợ không chứa cùng một tiêu đề được truyền nhiều lần với cùng một hoặc các giá trị khác nhau, trừ phi tiêu đề cụ thể có một ngoại lệ và được phép có các tiêu đề trùng lặp.

Theo mặc định, Apigee Edge cho phép truyền các giá trị trùng lặp và nhiều giá trị đến hầu hết các tiêu đề HTTP. Tuy nhiên, thuộc tính này không cho phép một số tiêu đề được liệt kê trong Các tiêu đề không được phép có giá trị trùng lặp và nhiều giá trị. Vì thế:

  • Bạn sẽ nhận được 400 Bad Request với mã lỗi protocol.http.DuplicateHeader nếu máy khách gửi yêu cầu HTTP có tiêu đề cụ thể nhiều lần hoặc có nhiều giá trị cho các tiêu đề HTTP không được phép có giá trị trùng lặp/nhiều giá trị trong Apigee Edge.
  • Tương tự, bạn sẽ nhận được 502 Bad Gateway với mã lỗi protocol.http.DuplicateHeader nếu máy chủ phụ trợ gửi một phản hồi HTTP có tiêu đề cụ thể nhiều lần hoặc có nhiều giá trị cho các tiêu đề HTTP không được phép có giá trị trùng lặp hoặc nhiều giá trị trong Apigee Edge

Giải pháp được đề xuất để giải quyết những lỗi này là sửa ứng dụng khách và máy chủ phụ trợ để không gửi tiêu đề trùng lặp và tuân thủ quy cách RFC 7230, phần 3.2.2: Thứ tự trường như được giải thích trong các sổ tay khắc phục sự cố sau:

Tuy nhiên, trong một số trường hợp, bạn có thể muốn thêm một ngoại lệ để đưa các giá trị trùng lặp và nhiều giá trị vào một số tiêu đề HTTP. Trong những trường hợp như vậy, bạn có thể cho phép các tiêu đề trùng lặp và nhiều giá trị cho một tiêu đề HTTP cụ thể bằng cách đặt một thuộc tính HTTPHeader.HEADER_NAME ở cấp Trình xử lý thông báo.

Tài liệu này cung cấp thông tin về thuộc tính này, giải thích cách bật thuộc tính này để tránh các lỗi nêu trên và chia sẻ các phương pháp hay nhất liên quan.

Các thuộc tính tiêu đề HTTP cho phép các giá trị trùng lặp và nhiều giá trị

Apigee Edge cung cấp 2 thuộc tính sau để kiểm soát hành vi cho phép các giá trị trùng lặp và nhiều giá trị cho tiêu đề HTTP. Xin lưu ý rằng bạn chỉ có thể định cấu hình các thông số này trên Bộ xử lý thông báo bằng cách sử dụng cú pháp mã thông báo được giải thích trong phần Cách định cấu hình Edge.

Tên tài sản Mô tả Giá trị được phép
HTTPHeader.ANY

Thuộc tính này cho biết liệu các giá trị trùng lặp hay nhiều giá trị có được phép cho tất cả tiêu đề HTTP hay không, bao gồm cả tiêu đề tuỳ chỉnh được gửi trong yêu cầu HTTP do máy khách thực hiện hoặc phản hồi HTTP do máy chủ phụ trợ gửi đến Apigee Edge.

Giá trị mặc định:

multiValued, allowDuplicates,

  1. blank: Bạn không được phép có các giá trị trùng lặp và nhiều giá trị cho tiêu đề HTTP.
  2. multiValued: Chia tiêu đề có nhiều giá trị thành nhiều tiêu đề. Bạn có thể sử dụng nhiều giá trị cho tiêu đề HTTP, nhưng không được phép sử dụng giá trị trùng lặp. Giá trị multiValued được bật, tức là test-header=a,b sẽ được chuyển đổi thành test-header=atest-header=b.
  3. allowDuplicates: Cho phép nhiều tiêu đề HTTP (trùng lặp) có cùng tên.
  4. multiValued, allowDuplicates: Cả nhiều giá trị và giá trị trùng lặp đều được phép dùng cho tiêu đề HTTP.

HTTPHeader.HEADER_NAME

Thuộc tính này được dùng để ghi đè hành vi của một tiêu đề cụ thể so với hành vi được chỉ định bằng HTTPHeader.ANY

Giống như trên.

Tiêu đề không được phép có giá trị trùng lặp và nhiều giá trị

Như đã giải thích trước đó, theo mặc định, Apigee Edge cho phép các giá trị trùng lặp và nhiều giá trị cho hầu hết các tiêu đề HTTP. Điều này là do thuộc tính HTTPHeader.ANY được định cấu hình với giá trị multiValued, allowDuplicates.

Cấu hình bị ghi đè

Đối với một số tiêu đề cụ thể, cấu hình mặc định sẽ bị ghi đè bằng một trong các phương thức sau:

  • HTTPHeader.HEADER_NAME=multiValued, allowDuplicates

    Cấu hình này không thay đổi hành vi mặc định. Tức là tiêu đề cụ thể đó được phép có các giá trị trùng lặp và nhiều giá trị

    .
  • HTTPHeader.HEADER_NAME=

    Cấu hình này thay đổi hành vi mặc định. Tức là tiêu đề cụ thể không được phép có giá trị trùng lặp và nhiều giá trị.

Xác định những tiêu đề không được phép có giá trị trùng lặp và nhiều giá trị

Phần này mô tả cách xác định những nội dung sau:

  • Các tiêu đề cụ thể không được phép có giá trị trùng lặp và nhiều giá trị trong chế độ thiết lập Đám mây riêng Apigee Edge, và
  • Các tiêu đề cụ thể có cấu hình hiện có
  1. Trên máy Message Processor, hãy tìm thuộc tính HTTPHeader. trong thư mục /opt/apigee/edge-message-processor/conf như minh hoạ bên dưới:

    grep -ri "HTTPHeader." /opt/apigee/edge-message-processor/conf
    

    Đầu ra mẫu:

    # grep -ri "HTTPHeader" /opt/apigee/edge-message-processor/conf
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.ANY=allowDuplicates, multiValued
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Connection=allowDuplicates, multiValued
    … <snipped>
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Host=
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Date=allowDuplicates
    …
    <snipped>
  2. Như đã giải thích trong phần Cấu hình bị ghi đè, hãy lưu ý thông tin sau trong đầu ra mẫu ở trên:
    1. Tiêu đề HTTP Connection bị ghi đè, nhưng được phép có các giá trị trùng lặp và nhiều giá trị
    2. Các tiêu đề HTTP HostExpires sẽ bị ghi đè và không được phép có các giá trị trùng lặp và nhiều giá trị
    3. Tiêu đề HTTP Date bị ghi đè và được phép có các giá trị trùng lặp nhưng không được phép có nhiều giá trị
    4. Tất cả tiêu đề xuất hiện ở đây (Connection, Host, ExpiresDate trong mẫu trên) được gọi là tiêu đề có cấu hình có sẵn trong tài liệu này.

Hành vi của Apigee Edge

Bảng sau đây mô tả hành vi của Apigee Edge khi các tiêu đề được gửi dưới dạng bản sao và có nhiều giá trị tuỳ thuộc vào cách các thuộc tính HTTPHeader được định cấu hình trên Bộ xử lý thông báo bằng ví dụ HTTPHeader về test-header.

Yêu cầu HEADERS đi dựa trên giá trị của conf/http.properties+HTTPHeader.test-header=
<Blank> allowDuplicates multiValued allowDuplicates, multiValued (MẶC ĐỊNH)
test‑header=a,b test‑header=a,b test‑header=a,b

protocol.http.
DuplicateHeader

Trong nội bộ, chúng tôi chia test-header=a,b thành:

  • test-header=a
  • test-header=b,

sau đó, lỗi DuplicateHeader sẽ xuất hiện.

test‑header=a,b

Trong nội bộ, chúng tôi chia test-header=a,b thành:

  • test-header=a
  • test-header=b,

nhưng sau đó biểu mẫu gốc sẽ được gửi đến đích.

test‑header=a
test‑header=b
protocol.http.
DuplicateHeader
test‑header=a
test‑header=b
protocol.http.
DuplicateHeader
test‑header=a
test‑header=b

Trước khi bắt đầu

Trước khi sử dụng các bước trong tài liệu này, hãy đảm bảo rằng bạn hiểu rõ cách định cấu hình các thuộc tính cho Edge trên Đám mây riêng, được mô tả trong phần Cách định cấu hình Edge.

Định cấu hình allowDuplicates và nhiều giá trị cho tiêu đề

Như đã giải thích trong phần Thuộc tính tiêu đề HTTP để cho phép các giá trị trùng lặp và nhiều giá trị,giá trị của thuộc tính HTTPHeader.ANY = allowDuplicates, multiValued ngụ ý rằng tất cả tiêu đề đều được phép có các giá trị trùng lặp và nhiều giá trị trong Apigee Edge. Tuy nhiên, có một số tiêu đề mà giá trị của chúng bị ghi đè một cách rõ ràng để không cho phép các tiêu đề trùng lặp hoặc nhiều giá trị cho tiêu đề này bằng cách sử dụng thuộc tính HTTPHeader.HEADER_NAME.

Phần này giải thích cách định cấu hình thuộc tính HTTPHeader.HEADER_NAME để cho phép các giá trị trùng lặp và nhiều giá trị cho mọi tiêu đề HTTP như vậy trên Trình xử lý thông báo, bằng cách sử dụng mã thông báo tương ứng theo cú pháp được mô tả trong bài viết Cách định cấu hình Edge.

Trong phần này, chúng ta sẽ sử dụng Expires (và myheader) làm tiêu đề ví dụ mà chúng ta muốn cho phép các giá trị trùng lặp và nhiều giá trị như giải thích bên dưới:

  1. Xác định giá trị hiện tại của thuộc tính HTTPHeaderHEADER_NAME để đảm bảo rằng thuộc tính này chưa được bật để cho phép các giá trị trùng lặp và nhiều giá trị bằng cách sử dụng lệnh sau:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    Ví dụ: nếu bạn đang cố gắng đặt thuộc tính cho tiêu đề Expires, hãy kiểm tra giá trị hiện tại của mã thông báo thuộc tính HTTPHeader.Expires trên Trình xử lý thông báo:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    Kết quả của lệnh trên sẽ là một trong những kết quả sau:

    1. Thuộc tính được đặt thành trống, điều này ngụ ý rằng giá trị bị ghi đè (và đây là tiêu đề có cấu hình đã có từ trước) để KHÔNG cho phép các tiêu đề trùng lặp và nhiều giá trị. Tức là bạn không được phép gửi tiêu đề Expires nhiều lần trong yêu cầu HTTP hoặc phản hồi HTTP đến Apigee.
    2. Không có lượt truy cập nào cho thuộc tính cụ thể, điều đó có nghĩa là giá trị đó không bị ghi đè (và đây KHÔNG phải là tiêu đề có cấu hình có sẵn). Điều này có nghĩa là tiêu đề cụ thể có thể được gửi nhiều lần (cho phép trùng lặp) trong yêu cầu HTTP hoặc phản hồi HTTP đến Apigee Edge.
    3. Thuộc tính được đặt bằng giá trị allowDuplicates, multiValued, điều đó có nghĩa là giá trị đó được ghi đè một cách rõ ràng (và đây là tiêu đề có cấu hình đã tồn tại từ trước). Điều này có nghĩa là tiêu đề cụ thể có thể được gửi nhiều lần (cho phép trùng lặp) trong yêu cầu HTTP hoặc phản hồi HTTP đến Apigee.

    Kết quả đầu ra mẫu của lệnh tìm kiếm:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=

    Kết quả mẫu ở trên cho thấy thuộc tính HTTPHeader.Expires được đặt thành trống. Điều này có nghĩa là thuộc tính sẽ bị ghi đè thành không cho phép giá trị trùng lặp hoặc nhiều giá trị cho tiêu đề Expires.

  2. Nếu bạn nhận thấy thuộc tính tương ứng với tiêu đề cụ thể đã bị ghi đè một cách rõ ràng thành không cho phép có giá trị trùng lặp hoặc nhiều giá trị như trong ví dụ về đầu ra ở trên, chỉ khi đó bạn mới thực hiện các bước sau. Nếu không bị ghi đè một cách rõ ràng, hãy bỏ qua các bước còn lại trong phần này.
  3. Chỉnh sửa. Nếu chưa có, bạn có thể tạo:
    /opt/apigee/customer/application/message-processor.properties

    Ví dụ: để mở tệp bằng vi, hãy nhập nội dung sau:

    vi /opt/apigee/customer/application/message-processor.properties
    
  4. Thêm một dòng theo định dạng sau:
    conf_http_HTTPHeader.Expires=allowDuplicates, multiValued
  5. Lưu thay đổi.
  6. Đảm bảo rằng tệp thuộc tính thuộc sở hữu của người dùng apigee. Nếu không, hãy thực thi lệnh sau:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  7. Khởi động lại Trình xử lý tin nhắn:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    

    Để khởi động lại mà không ảnh hưởng đến lưu lượng truy cập, hãy xem phần Khởi động lại Trình xử lý thông báo theo từng bước mà không ảnh hưởng đến lưu lượng truy cập.

  8. Nếu bạn có nhiều Trình xử lý tin nhắn, hãy lặp lại các bước trên cho tất cả Trình xử lý tin nhắn.

Xác minh tiêu đề được định cấu hình để có nội dung trùng lặp và nhiều giá trị

Phần này giải thích cách xác minh rằng thuộc tính HTTPHeader.HEADER_NAME cho một tiêu đề cụ thể đã được cập nhật thành công để cho phép các bản sao trên Trình xử lý thông báo.

Chúng ta sẽ dùng Expires làm tiêu đề mẫu và kiểm tra xem thuộc tính tương ứng HTTPHeader.Expires đã được cập nhật hay chưa.

Mặc dù bạn dùng mã thông báo conf_http_HTTPHeader.Expires để cập nhật giá trị trên Trình xử lý thông báo, nhưng bạn cần xác minh xem thuộc tính thực tế HTTPHeader.Expires đã được đặt bằng giá trị mới hay chưa.

  1. Trên máy Message Processor (Bộ xử lý thông báo), hãy tìm thuộc tính HTTPHeader.HEADER_NAME trong thư mục /opt/apigee/edge-message-processor/conf và kiểm tra xem thuộc tính này đã được đặt thành giá trị mới hay chưa như minh hoạ bên dưới:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    Ví dụ: nếu bạn muốn kiểm tra xem thuộc tính HTTPHeader.Expires có được đặt bằng giá trị mới hay không, hãy chạy lệnh sau:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    
  2. Nếu giá trị mới được đặt thành công cho HTTPHeader.HEADER_NAME trên Trình xử lý thông báo, thì lệnh trên sẽ cho thấy giá trị mới trong tệp http.properties.
  3. Sau đây là kết quả mẫu của lệnh nêu trên sau khi bạn đã định cấu hình allowDuplicatesmultiValued:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=allowDuplicates, multiValued
  4. Trong ví dụ về đầu ra ở trên, lưu ý rằng thuộc tính HTTPHeader.Expires đã được đặt bằng giá trị mới allowDuplicates, multiValued trong http.properties. Điều này cho biết rằng hành vi cho phép các giá trị trùng lặp và nhiều giá trị trong HTTPHeader đã được định cấu hình thành công trên Trình xử lý thông báo.
  5. Nếu bạn vẫn thấy giá trị cũ cho tài sản HTTPHeader.HEADER_NAME, hãy xác minh rằng bạn đã làm theo tất cả các bước được nêu trong bài viết Định cấu hình allowDuplicates và nhiều giá trị cho tiêu đề một cách chính xác. Nếu bạn bỏ lỡ bước nào, hãy lặp lại tất cả các bước một cách chính xác.

    Đảm bảo rằng các proxy của bạn hoạt động như dự kiến, đặc biệt là nếu có logic chức năng để nhận và đặt tiêu đề trong proxy.

  6. Nếu bạn vẫn không thể sửa đổi tài sản, hãy liên hệ với Nhóm hỗ trợ Apigee Edge

Tắt allowDuplicates cho tiêu đề

Phần này giải thích cách định cấu hình thuộc tính HTTPHeader.{Headername} để không cho phép các giá trị trùng lặp và nhiều giá trị cho một tiêu đề HTTP cụ thể trên Trình xử lý thông báo, bằng cách sử dụng mã thông báo tương ứng theo cú pháp được mô tả trong Cách định cấu hình Edge.

Trong phần này, chúng ta sẽ sử dụng Expires (và myheader) làm tiêu đề ví dụ mà chúng ta không muốn cho phép trùng lặp như giải thích dưới đây:

  1. Xác định giá trị hiện tại của thuộc tính HTTPHeaderHEADER_NAME để đảm bảo rằng thuộc tính này chưa bị vô hiệu hoá để cho phép các giá trị trùng lặp và nhiều giá trị bằng cách sử dụng lệnh sau:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    Ví dụ: nếu bạn đang cố gắng đặt thuộc tính cho tiêu đề Expires, hãy kiểm tra giá trị hiện tại của mã thông báo thuộc tính HTTPHeader.Expires trên Trình xử lý thông báo:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    Kết quả của lệnh trên sẽ là một trong những kết quả sau:

    1. Thuộc tính này được đặt thành giá trị trống, điều này ngụ ý rằng giá trị is bị ghi đè thành NOT để cho phép các tiêu đề trùng lặp và nhiều giá trị. Tức là bạn không được phép gửi tiêu đề Expires nhiều lần trong yêu cầu HTTP hoặc phản hồi HTTP đến Apigee.
    2. Không có lượt truy cập nào cho thuộc tính cụ thể, điều đó có nghĩa là giá trị đó không bị ghi đè và đây là tiêu đề NOT có cấu hình đã tồn tại. Điều này có nghĩa là tiêu đề cụ thể có thể được gửi nhiều lần (cho phép trùng lặp) trong yêu cầu HTTP hoặc phản hồi HTTP đến Apigee Edge.
    3. Thuộc tính được đặt bằng giá trị allowDuplicates, multiValued, điều đó có nghĩa là giá trị đó được ghi đè một cách rõ ràng và đây là một cấu hình hiện có. Tuy nhiên, điều này có nghĩa là tiêu đề cụ thể có thể được gửi nhiều lần (cho phép trùng lặp) trong yêu cầu HTTP hoặc phản hồi HTTP đến Apigee.

    Đầu ra mẫu số 1

    Đầu ra mẫu số 1 của lệnh tìm kiếm:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=allowDuplicates, multiValued

    Đầu ra mẫu cho thấy thuộc tính HTTPHeader.Expires được đặt thành allowDuplicates, multiValued. Điều này có nghĩa là thuộc tính sẽ bị ghi đè để cho phép các giá trị trùng lặp hoặc nhiều giá trị cho tiêu đề Expires.

    Kết quả mẫu 2

    Lệnh và đầu ra mẫu số 2 của lệnh tìm kiếm

    grep -ri "HTTPHeader.myheader" /opt/apigee/edge-message-processor/conf
    

    Kết quả đầu ra mẫu không cho thấy kết quả đầu ra nào, điều này ngụ ý rằng thuộc tính HTTPHeader.myheader được đặt thành allowDuplicates, multiValued theo mặc định. Điều này cũng ngụ ý rằng thuộc tính không bị ghi đè cho tiêu đề myheader,

  2. Nếu bạn nhận thấy một trong những điều sau, hãy thực hiện các bước còn lại trong phần này:
    1. Thuộc tính tương ứng với tiêu đề cụ thể sẽ bị ghi đè để cho phép các giá trị trùng lặp và nhiều giá trị như trong Đầu ra mẫu số 1 ở trên (tiêu đề có cấu hình đã có từ trước)
    2. Không có lượt truy cập nào cho tài sản tương ứng với tiêu đề cụ thể như trong Đầu ra mẫu số 2 ở trên (không phải là tiêu đề có cấu hình có sẵn)

    Nếu không, hãy bỏ qua các bước còn lại trong phần này.

  3. Chỉnh sửa tệp sau đây. Nếu chưa có, bạn có thể tạo một tài khoản.
    /opt/apigee/customer/application/message-processor.properties

    Ví dụ: để mở tệp bằng vi, hãy nhập nội dung sau:

    vi /opt/apigee/customer/application/message-processor.properties
    
  4. Thêm một dòng theo định dạng sau vào tệp thuộc tính:

    Cấu hình có từ trước

    Trường hợp 1: Tiêu đề có cấu hình đã có từ trước:

    conf_http_HTTPHeader.Expires=

    Không có cấu hình nào từ trước

    Trường hợp 2: Không phải là tiêu đề có cấu hình đã tồn tại từ trước:

    conf/http.properties+HTTPHeader.myheader=
  5. Lưu thay đổi.
  6. Đảm bảo rằng tệp thuộc tính thuộc sở hữu của người dùng apigee. Nếu không, hãy thực hiện các bước sau:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  7. Khởi động lại Trình xử lý tin nhắn:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    

    Để khởi động lại mà không ảnh hưởng đến lưu lượng truy cập, hãy xem phần Khởi động lại từng phần Bộ xử lý thông báo mà không ảnh hưởng đến lưu lượng truy cập.

  8. Nếu bạn có nhiều Trình xử lý tin nhắn, hãy lặp lại các bước trên cho tất cả Trình xử lý tin nhắn.

Xác minh tiêu đề được định cấu hình để không cho phép các giá trị trùng lặp và nhiều giá trị

Phần này giải thích cách xác minh rằng thuộc tính HTTPHeader.HEADER_NAME cho một tiêu đề cụ thể đã được cập nhật thành công để không cho phép các bản sao trên Trình xử lý thông báo.

Chúng ta sẽ dùng Expires (và myheader) làm tiêu đề mẫu và kiểm tra xem thuộc tính HTTPHeader.Expires (và HTTPHeader.myheader) tương ứng đã được cập nhật hay chưa.

  1. Trên máy Message Processor (Bộ xử lý thông báo), hãy tìm thuộc tính HTTPHeader.HEADER_NAME trong thư mục /opt/apigee/edge-message- processor/conf và kiểm tra xem thuộc tính này đã được đặt thành giá trị mới như minh hoạ bên dưới hay chưa:

    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    Ví dụ: nếu muốn kiểm tra xem thuộc tính HTTPHeader.Expires có được đặt bằng giá trị mới hay không, thì bạn có thể chạy lệnh sau:

    Cấu hình có từ trước

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    Không có cấu hình nào từ trước

    grep -ri "HTTPHeader.myheader" /opt/apigee/edge-message-processor/conf
    
  2. Nếu bạn đã đặt thành công giá trị tiêu đề HTTP mới cho HTTPHeader.HEADER_NAME I trên Message Processor, thì lệnh trên sẽ cho thấy giá trị mới trong tệp http.properties.
  3. Sau khi bạn tắt allowDuplicates, kết quả mẫu của lệnh trên sẽ như sau:

    Cấu hình có từ trước

    Tình huống 1: Tiêu đề Hết hạn (tiêu đề có cấu hình có sẵn)

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=

    Không có cấu hình nào từ trước

    Trường hợp 2: Tiêu đề myheader (không phải tiêu đề có cấu hình sẵn)

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.myheader=
  4. Trong ví dụ về đầu ra ở trên, lưu ý rằng thuộc tính HTTPHeader.Expires ( và HTTPHeader.myheader) đã được đặt thành giá trị mới {blank} trong http.properties. Điều này cho biết rằng hành vi cho phép các giá trị trùng lặp và nhiều giá trị cho tiêu đề HTTP cụ thể Expires (và myheader) đã được vô hiệu hoá thành công trên Trình xử lý thông báo.
  5. Nếu bạn vẫn thấy giá trị cũ cho tài sản HTTPHeader.Expires (or HTTPHeader.myheader), hãy xác minh rằng bạn đã làm theo tất cả các bước được nêu trong phần Định cấu hình allowDuplicates và nhiều giá trị cho tiêu đề một cách chính xác. Nếu bạn bỏ lỡ bước nào, hãy lặp lại tất cả các bước một cách chính xác.

    Đảm bảo rằng các proxy của bạn hoạt động như dự kiến, đặc biệt là nếu có logic chức năng để nhận và đặt tiêu đề trong proxy.

  6. Nếu bạn vẫn không thể sửa đổi tài sản, hãy liên hệ với Nhóm hỗ trợ Apigee Edge.