我有一個與 Kubernetes Ingress-nginx 相關的問題,我想使用ngx_http_map_module為log-format-upstream定義一個新屬性。舵圖中我定義了我的地圖的相應部分如下所示:
containerPort:
http: 80
https: 443
config:
log-format-upstream: $time_iso8601, $proxy_protocol_addr, $proxy_add_x_forwarded_for, $req_id, $remote_user, $bytes_sent, $request_time, $status, $host, $server_protocol, $uri $uri_category
http-snippet: |
map $uri $uri_category {
~(*/)([0-9]{3,} )(/*)$ $2;
}
configAnnotations: {}
但是,它給了我以下錯誤:
nginx: [emerg] unexpected "{" in /tmp/nginx-cfg1517276787:255
配置中的第 255 行如下所示:
proxy_ssl_session_reuse on;
map $uri $uri_category { #Line: 255
~(*/)([0-9]{3,} )(/*)$ $2;
}
upstream upstream_balancer {
我懷疑我沒有http-snippet在圖表中的正確位置定義和映射,但我不確定它到底應該在哪里?
uj5u.com熱心網友回復:
相關答案:用雙引號將正則運算式括起來;Nginx 使用{and}來定義塊。
例如:
map $uri $uri_category {
"~[0-9]{3,}" 'FOO';
}
server {
location / {
try_files $uri$uri_category =404;
}
}
該配置附加'FOO'到三個以上的連續數字。
/123 -> /123FOO
/4444 -> /4444FOO
在你的情況下,我認為正則運算式應該是這樣的:
"~(.*/)([0-9]{3,})(/.*)$" $2;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/511195.html
