2017-12-02 20 views
10

内部的にホストされている一般的なURLの下で複数のWebアプリケーションを社内外に統合する必要があります。オンプレミスアプリケーションは、ハプロキシと同じデータセンターにありますが、ハプロキシが実行されているサーバーには直接インターネットアクセスがないため、オフサイトアプリケーションにはhttpプロキシ経由でしかアクセスできません。したがって、私はHTTPインターネットプロキシを使用する必要があります、SOCKSもオプションかもしれません。インターネットプロキシの背後にあるアプリケーションで逆プロキシとしてhaproxyを使用する

どのようにバックエンドにプロキシ経由でしか届かないのかをhaproxyに伝えることはできますか? 私はむしろではありません。は、socksify/proxifier/proxychains/tsocks/...のような追加のコンポーネントを使用します。追加のオーバーヘッドが発生するためです。

この写真は、セットアップに関係するコンポーネントを示しています。私は、インターネットに直接接続でマシンでこれを実行すると haproxy setup with proxy

は、私は、この設定を使用することができますが、それだけで正常に動作します:

frontend main 
    bind *:8000 
    acl is_extweb1 path_beg -i /policies 
    acl is_extweb2 path_beg -i /produkte 

    use_backend externalweb1 if is_extweb1 
    use_backend externalweb2 if is_extweb2 

backend externalweb1 
    server static www.google.com:80 check 

backend externalweb2 
    server static www.gmx.net:80 check 

(明らかにこれらは私が話しているURLではありません)

ハプロキシは外部のアプリケーションとルートをチェックすることができますそれらへのトラフィック:私は私の働いている会社の安全な環境で

HAproxy stats page

は、プロキシを使用する必要がありますし、haproxyは、外部のアプリケーションに接続することができません。 httpプロキシの背後にある外部Webアプリケーションサーバー(認証は不要)を共通のHTTPページまたはブラウザ経由でアクセスできるようにするには、どうすればよいですか?

答えて

3

私はそれを動作させるために興味をそそられましたが、私は本当にhaproxyドキュメントに何かを見つけることができませんでしたので、私は少しググとnginxはトリックを行う可能性があることがわかったが、それは少し後に、私のためにしませんでしたgoogleingの多くは私がapacheのための構成を見つけることを終了しました。

Listen 80 

SSLProxyEngine on 

ProxyPass /example/ https://www.example.com/ 
ProxyPassReverse /example/ https://www.example.com/ 
ProxyRemote https://www.example.com/ http://corporateproxy:port 

ProxyPass /google/ https://www.google.com/ 
ProxyPassReverse /google/ https://www.google.com/ 
ProxyRemote https://www.google.com/ http://corporateproxy:port 

私はnginxのためにもhaproxyする...私は更新する時間を見つけるために管理する場合は、この設定を変換する方法があるはずはかなり確信している:ここ

は重要な部分であります私の発見との答え。あなたはまた、いくつかのモジュールを有効にする必要があります動作するようにApacheの

、私は完全に動作する設定を参照するには、その見て気軽に紹介する基本的なドッキングウィンドウの設定でgithub repositoryを設置しました。

4

デリゲート(http://delegate.org/documents/)をアイデアと同じように使いましょう。

haproxy -> delegate -f -vv -P127.0.0.1:8081 PROXY=<your-proxy>

http://delegate.org/delegate/Manual.shtml?PROXY

私はそれがエレガントではありません知っているが、それは仕事ができます。

私はカール呼び出しがhaproxy TCP呼び出しをsimluatesローカルイカと、このセットアップと、このカールコール

echo 'GET http://www.php.net/' |curl -v telnet://127.0.0.1:8081

をテストしています。

+1

これは私が必要とするものではないと思います。私はcurl http(s):// myserver.local/foo'を実行する必要があり、これは 'http(s):// www.google.com'のような静的なサイトを内部的に呼び出す必要があります* + * not static urlの一部、この場合は '/ foo'です。つまり、これは、プロキシを 'http:// www.google.com/foo'にリバースする必要があり、myserver.local自身がサービスしていたかのようにそのコードを返します。 – Marged

+0

これは、元の投稿と異なる音。あなたが知っていることは、 'http-responseのようなホストヘッダーの書き換えです。ホストwww \ .google \ .com myserver \ .local' Doc:http://cbonte.github.io/haproxy-dconv/1.8/configuration。 html#4.2-http-response – Aleksandar

+0

私は主なポイントは、プロキシを使用するhaproxyを得ていると思う、残りはまた重要ですが、後で来る – Marged

関連する問題