Max*_*Max 19 ubuntu nginx http-headers
使用nginx 1.2.1我可以使用add_header以下方法添加多个标头:
server {
listen 80;
server_name localhost;
root /var/www;
add_header Name1 Value1; <=== HERE
add_header Name2 Value2; <=== HERE
location / {
echo "Nginx localhost site";
}
}
Run Code Online (Sandbox Code Playgroud)
结果
GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
Run Code Online (Sandbox Code Playgroud)
但是,我一使用add_header里面的指令location,下面的其他add_header指令就会server被忽略
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";
}
}
Run Code Online (Sandbox Code Playgroud)
结果
GET /
HTTP/1.1 200 OK
Name3: Value3
Name4: Value4
Run Code Online (Sandbox Code Playgroud)
该文件说,双方server并location是有效的context,并没有在使用状态add_header中的一个防止在其他使用它。
Q1:你知道这是一个错误还是预期的行为,为什么?
Q2:除了使用HttpHeadersMoreModule模块之外,您是否还有其他选项可以解决此问题?
Max*_*nin 23
这是预期的行为。这些add_header指令与 nginx 中的所有其他数组类型指令非常相似,当且仅当add_header在当前级别上没有定义指令时,才从上一级继承。
如果你想让 nginxlocation /在location /.
location / {
add_header Name1 Value1;
add_header Name2 Value2;
add_header Name3 Value3;
add_header Name4 Value4;
return 200 "";
}
Run Code Online (Sandbox Code Playgroud)
如果您需要一种方法在一个地方列出大的标题子集,您可以include为此使用指令。请参阅此处的文档。
| 归档时间: |
|
| 查看次数: |
13459 次 |
| 最近记录: |