我想确保至少默认的头值总是从上游返回。即使上游不可用,这会导致错误5xx。
现在我已经尝试了这些nginx配置选项:
server {
...
#add_header "Access-Control-Allow-Origin" "*"; №0
#add_header "Access-Control-Allow-Origin" "*" always; №1
#more_set_headers "Access-Control-Allow-Origin: *"; №2
#more_set_headers -s '403 500 502 504 503' "Access-Control-Allow-Origin: *"; №3
location /upstream {
proxy_pass http://localhost:1234;
}
...
}
所有选项都存在问题:
- No0:复制标题,在5xx的情况下不会返回任何标题。
- 1:复制标题
- 2:覆盖上游标题
- 3:如果上游以一个好的http代码结束,但是没有返回一个头,它将不添加一个头。
我想我快找到正确的解决办法了,但我找不到。
1条答案
按热度按时间xsuvu9jc1#
下面的
map
使用正则表达式/.+/
来检查是否定义了Access-Control-Allow-Origin标头。如果定义了,则将其值赋给$acao
自定义变量。否则,将默认值*
赋给$acao
;为避免重复,请使用
proxy_hide_header
最后,使用
$acao
变量content添加标题。