Man*_*oon 6 ssl nginx amazon-cloudfront
我正在使用AWS CloudFront在到达后端之前终止我的SSL,并且需要将此流量与非CloudFront流量区分开以proxy_set_header
在Nginx中设置.
我认为最好的方法是检查X-Amz-Cf-Id
标题(由CloudFront添加),并设置它proxy_set_header
何时出现.但是,我知道不可能proxy_set_header
在Nginx if语句中设置,这导致了我的问题.
如何proxy_set_header
仅在存在标题时设置值?
Ian*_*non 10
if
语句不是设置自定义标头的好方法,因为它们可能导致忽略if块之外的语句.
# outside server blocks
map $http_X_Amz_Cf_Id is_cloudfront {
default "No";
~. "Yes"; # Regular expression to match any value
}
Run Code Online (Sandbox Code Playgroud)
然后:
# inside location block
proxy_set_header X_Custom_Header $is_cloudfront;
Run Code Online (Sandbox Code Playgroud)
一般的答案是您可以在其中设置变量if
,然后使用该变量。像这样:
set $variable "";
if ($http_X_Amz_Cf_Id) {
set $variable "somevalue";
}
proxy_set_header someheader $variable;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9524 次 |
最近记录: |