2554
アクセスさせたいWebアプリケーションが3つあります。

  1. アプリ名：a-appli、アクセスパス：`http://localhost:9000/`
  2. アプリ名：b-appli、アクセスパス：`http://localhost:8080/`
  3. アプリ名：c-appli、アクセスパス：`http://localhost:8000/`

それを、nginxを用い、それぞれ

  1. a-appli は `http://localhost/a-appli/`
  2. b-appli は `http://localhost/b-appli/`
  3. c-appli は `http://localhost/c-appli/`

という風なアクセスをさせたい場合にどのようにconfを書けば良いでしょうか？

いずれのアプリも

```

    http://localhost:9000/hogehoge/hoge?a=x&c=d
    
```

のような場合は、

```

    http://localhost/a-appli/hogehoge/hoge?a=x&c=d
    
```

でアクセス出来る様にさせたいです。
CC BY-SA 3.0
2014-12-25T05:53:49.823
2545
2014-12-25T09:43:22.090
2014-12-25T09:43:22.090
3313
3355
question
nginx
nginxで複数のWebアプリケーションのアクセスをパスで振り分けたい
凝ったことヌキの教科書通りの回答ですが、、

```

    upstream a-appli {
      server  127.0.0.1:9000;
    }
    upstream b-appli {
      server  127.0.0.1:8080;
    }
    upstream c-appli {
      server  127.0.0.1:8000;
    }
    
```

としておいて、 `server{...}` の中で、、

```

    location /a-appli {
      rewrite ^/(.+) $1 break;
      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;
      proxy_pass http://a-appli/$1$is_args$args;
    }
    location /b-appli {
      rewrite ^/(.+) $1 break;
      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;
      proxy_pass http://b-appli/$1$is_args$args;
    }
    location /c-appli {
      rewrite ^/(.+) $1 break;
      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;
      proxy_pass http://c-appli/$1$is_args$args;
    }
    
```

とかでしょうか。。

諸々の調整なんかは公式のドキュメントなどを参照してくださいませ。
CC BY-SA 3.0
2014-12-25T07:46:44.223
2554
2014-12-25T07:46:44.223
2992
2545
answer