如何在nginx中重写或代理url?

时间:2017-07-26 08:59:35

标签: nginx docker

我是nginx的新手。我想改写

feature-1234.mydomain.com/xyz?foo=bar

docker-feature-1234:9000/xyz?foo=bar

带有请求参数。

我使用官方的nginx docker镜像。应该如何成为我的nginx.conf文件?

编辑:'功能-1234'是一个变量,所以:

feature-5678.mydomain.com

应该作为

docker-feature-5678:9000

1 个答案:

答案 0 :(得分:0)

通过组合答案,我找到了解决方案。

https://serverfault.com/questions/388552/nginx-sub-domain-proxy-pass

Docker Network Nginx Resolver

nginx: [emerg] "server" directive is not allowed here

nginx.conf:

events {
}

http {
  server {
    listen 80;
    server_name ~(.*).test.go;

    location / {
      if ($host ~* ^([a-zA-Z0-9-]+)\.test\.go$) {
        set $proxyhost docker-$1:9000;
      }

      resolver 127.0.0.11 ipv6=off;
      proxy_pass http://$proxyhost;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;

    }
  }
}

由于