NGINXdynamic代理通过parsing器

尝试使用nginx在Kubernetes中设置api网关。 我试图按照指定服务和版本的path跟单个子域模式。

api.domain.com/service/v0/api/resource/10 -> http://servicev0/api/resource/10

现在忽略版本…

这确实解决了。 location ~/(?<service>(\w+))/(?<version>(v[0-9]+(\.[0-9]+)*)) { resolver 169.254.169.250; proxy_pass http://theservice; }

使用api.domain / theservice / v0 / location ~/(?<service>(\w+))/(?<version>(v[0-9]+(\.[0-9]+)*)) { resolver 169.254.169.250; proxy_pass http://$service; } location ~/(?<service>(\w+))/(?<version>(v[0-9]+(\.[0-9]+)*)) { resolver 169.254.169.250; proxy_pass http://$service; }

错误 *1 theservice could not be resolved (110: Operation timed out),

还需要重写请求来删除$ service和$ version。

我build议你看看位置格式, 好文章在这里 。 不过,我在答复的底部给了你一个直接的答案。

我的大部分位置都是“位置(修改)(string)”格式,如下所示

 location ~* \.(jpg|jpeg|png|gif|css|js)$ {" location = /wp-login.php { location ~* (load_google_fonts|display_gallery_iframe) { location ~ \.(hh|php)$ { location ~* "wp-content\/uploads\/(\d{4,}\/\d{2,}\/.*|galleries\/.*)" { 

没有修饰符的唯一位置就是完全匹配的位置

 location / { location = /robots.txt { location /favicon.ico { 

我怀疑你需要更像这样的东西 – 唯一的变化是在“位置”之后的〜*和空格。 〜*是不区分大小写的正则expression式匹配。

 location ~* /(?<service>(\w+))/(?<version>(v[0-9]+(\.[0-9]+)*)) {