1

のようにすべての URL を書き換えてプロキシしたい...

http://foo.com/app/groupA/index.html
http://foo.com/app/groupB/index.html

http://foo.com:8080/index.html

groupA と groupB の URL が同じ場所に書き換えられることに注意してください。

私は多くのことを試しましたが、これは/.

location /app {
  rewrite (?:.*?\/){3}(.*) /$1 break;
  index index.html index.htm;
  proxy_pass http://localhost:8080;
  proxy_redirect    off;
  proxy_set_header  Host $host;  
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header  X-Forwarded-Ssl on;
  proxy_buffering  off; # buffering would break CouchDB's _changes feed
  proxy_read_timeout 600s;
  proxy_send_timeout 600s;
  proxy_connect_timeout 75s;
}

しかし、ポート 8080 では、他のリクエストが入ってくることはありません。

  location ^~ /app {
    rewrite /app/(.*) /$1 break;
    index index.html index.htm;
    proxy_pass http://localhost:8080;
    proxy_redirect    off;
    proxy_set_header  Host $host;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Ssl on;
    proxy_buffering  off; # buffering would break CouchDB's _changes feed
    proxy_read_timeout 600s;
    proxy_send_timeout 600s;
    proxy_connect_timeout 75s;
  }

リクエストはポート 8080 で受信されます...

 /groupA/index.html
 /groupB/index.html

URL の /groupA/ と /groupB/ の部分を取り除く方法を理解する必要があります。グループがあるスラッシュの間にある文字列が実際にはわからないことに注意してください。私が知っている限りでは /funnybunny/ かもしれません :P.

4

1 に答える 1