2017-07-27 1 views
0

私のマラソンポンド構成:マラソンポンドルール

"labels": { 
    "HAPROXY_GROUP": "external", 
    "HAPROXY_0_VHOST": "test.com", 
    "HAPROXY_0_MODE": "http" 
    } 

私はそれはルートが唯一の内部エンドポイント /results?q=123test.com/12345よう要求します。それを達成する方法?

P.S.あなたはおそらくマラソン-LBはHAProxyプラスいくつかのラッパーである知っているように

location ~* /[\w\-]+?$ { 
     proxy_pass http://127.0.0.1:8094; 
     rewrite ^/([\w\-]+?)$ //results?q=$1? break; 
    } 

答えて

1

:同じ目的のためにnginxのルールは次のようになります。 HAPROXY_0_BACKEND_HTTP_OPTIONSラベルを使用して、HAProxy configurationにリダイレクトを追加できます。便利なレガシーreqrepステートメントがあり、301リダイレクトに行くこともできます。たとえば、あなたが行うことができます。

"HAPROXY_0_BACKEND_HTTP_OPTIONS": " reqrep ^/([\w\-]+?)$ /results?q=\\1 \n",

または

"HAPROXY_0_BACKEND_HTTP_OPTIONS": " acl is_foo path -i /foo \n redirect code 301 location /bar if is_foo\n",

は、インデントのための二重のスペースに注意してください。それを機能させるためにエスケープで遊ぶ必要はありません。

+0

1日のうちにhaproxy/aclの構文を設定/学習することは不可能なので、追加のnginxルーターをセットアップします。 – ipoteka