のようにすべての 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.