nginx proxy_pass para diferentes backends com base na localização / passagem de URL reescrito

2

Qual é a solução mais rápida e mais limpa se você quiser fazer uma solicitação de URL do proxy para dois back-ends diferentes por meio do proxypass com base no local.

 location /app1/ {
         alias /var/www/ruby/public;
         proxy_set_header  X-Real-IP  $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header  Host $http_host;
         proxy_redirect    off;
         try_files $uri $uri/ @ruby;
       }

      location @ruby {
         proxy_pass http://127.0.0.1:3000;
      }

 location /app2/ {
         proxy_set_header  X-Real-IP  $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header  Host $http_host;
         proxy_redirect    off;
         try_files $uri $uri/ @other;
       }

      location @other {
         proxy_pass http://127.0.0.1:8080;
      }

Com essa configuração, nginx pass "/app1" ou " /app2 " para proxy e backend não reconhece o url / comando.

como por exemplo, gostaria de passar para http://127.0.0.1:3000 only / messages ao acessar http://<nginx>/app1/messages - mas na configuração acima também passa /app1/ as http://127.0.0.1:3000/app1/messages . O mesmo vale para /app2

    
por lowk3y 10.12.2012 / 14:00

0 respostas