Sử dụng nginx 1.2.1 Tôi có thể thêm nhiều tiêu đề bằng cách sử dụng add_headernhư sau:
server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE
    location / {
        echo "Nginx localhost site";
    }
}
Kết quả
GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
Tuy nhiên, ngay sau khi tôi sử dụng add_headerchỉ thị bên trong location, các add_headerchỉ thị khác serverđược bỏ qua
server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE
    location / {
        add_header Name3 Value3;  <=== HERE
        add_header Name4 Value4;  <=== HERE
        echo "Nginx localhost site";
    }
}
Kết quả
GET /
HTTP/1.1 200 OK
Name3: Value3
Name4: Value4
Các tài liệu nói rằng cả hai servervà locationcó giá trị contextvà không nhà nước rằng việc sử dụng add_headertrong một ngăn chặn sử dụng nó trong khác.
Q1: Bạn có biết nếu đây là một lỗi hoặc hành vi dự định và tại sao?
Câu 2: Bạn có thấy các tùy chọn khác để sửa lỗi này hơn là sử dụng HttpHeadersMoreModulemô-đun không?
add_headertronglocationchỉ thị, nhưng tôi vẫn không thấy tiêu đề này được thêm vào - có ý tưởng nào không?