2017-02-16 9 views
0

目標:背景は私ができるサービスを使用しているということである二つの異なるサービスnginxを使用して、2つの異なるサービスへの要求をプロキシしますか?

http://bar.com/b 
http://baz.com/c 

に要求

http://foo.com/a 

に要求を受け入れて、振り向くと、プロキシになるサービスをアップスタンドポストリクエストを受け入れ、URLにポストすることでそのサードパーティサービスにイベントコールバックを投稿することによって、他の第三者サービスと統合することができます。問題は、設定で単一のURLしかサポートしないため、このように複数のサービスを統合することが不可能になることです。

私はwebhooks.io(適度な量のトラフィックには高価すぎる)とreflector.io(ベータ - トラフィックは適度な量で落ちる)のような他のサービスを調べましたが、 。だから私は自分のサービスを立ち上げることに挑戦し始めました。私はできるだけ手を離したいと思っています。 nginxのような感じが...これを行うことができるはず

は、私は他の誰かがバグとして分類され、次のスニペットに出会いましたが、私は何をしたいのスタートのように感じている:よりもむしろ

upstream apache { 
    server 1.2.3.4; 
    server 5.6.7.8; 
} 
... 
location/{ 
    proxy_pass http://apache; 
} 

ラウンドロビン要求をApacheに送信すると、両方のApacheサーバーに同じ要求が送信されているように見えますが、それは有望です。問題は、両方のサーバーの同じパスに送信することです。私の場合、2つのサービスは異なるパス(/ bと/ c)を持ち、どちらもインバウンドリクエストと同じパスではありません(/ a)

So ...それぞれの宛先パスを指定する方法サーバーをアップストリーム構成にするか、これを行うための他の巧妙な方法ですか?

答えて

0

ローカルサーバーを作成できます。ローカルサーバーproxy_passは、異なるパス(b、c)を追加します。

upstream local{ 
    server 127.0.0.1:8000; 
    server 127.0.0.1:8001; 
} 
    location/{ 
     proxy_pass http://local ; 
    } 
server { 
    listen 8000; 
    location/{ 
     proxy_pass http://1.2.3.4/b; 
    } 
server { 
    listen 8001; 
    location/{ 
     proxy_pass http://5.6.7.8/c; 
} 
+0

ニース!それは私がやろうとしていたことでした。残念ながら私が以前に見つけた上流の作品は、要求を広げていないようです。 2人のうちの1人だけがリクエストを得るので、ラウンドロビンングのように見えます。それが閉鎖されたバグであれば驚いた。 – Gatos

関連する問題