タグ付けされた質問 「reverse-proxy」


26
Dockerコンテナー内から、マシンのローカルホストに接続するにはどうすればよいですか?
したがって、Dockerコンテナー内でNginxを実行しています。localhostでmysqlを実行しています。Nginx内からMySqlに接続します。MySqlはローカルホストで実行されており、ポートを外部に公開していないため、マシンのIPアドレスではなくローカルホストにバインドされています。 このDockerコンテナ内からローカルホスト上のこのMySqlまたは他のプログラムに接続する方法はありますか? この質問は、DockerホストのIPアドレスがネットワーク内のパブリックIPまたはプライベートIPである可能性がある、または可能性があるため、「Dockerコンテナー内からdockerホストのIPアドレスを取得する方法」とは異なります。 Dockerコンテナー内から到達できません(AWSなどでホストされている場合は、パブリックIPを意味します)。DockerホストのIPアドレスを持っている場合でも、Dockerネットワークがオーバーレイ、ホスト、ブリッジ、macvlanなどの可能性があるため、そのIPアドレスがコンテナの到達可能性を制限するため、コンテナ内からdockerホストに接続できるわけではありません。そのIPアドレス。

9
express.jsによるプロキシ
同じドメインのAJAXの問題を回避するために、node.js WebサーバーがURL /api/BLABLAからのすべてのリクエストを別のサーバーに転送しother_domain.com:3000/BLABLA、このリモートサーバーが返したものと同じものを透過的にユーザーに返します。 他のすべてのURL(以外/api/*)は、プロキシなしで直接提供されます。 node.js + express.jsでこれを実現するにはどうすればよいですか?簡単なコード例を教えてください。 (Webサーバーとリモート3000サーバーの両方が私の制御下にあり、どちらもnode.jsとexpress.jsを実行しています) これまでのところ、このhttps://github.com/http-party/node-http-proxyを見つけましたが、そこでドキュメントを読んでも、私には賢くなりませんでした。私はで終わった var proxy = new httpProxy.RoutingProxy(); app.all("/api/*", function(req, res) { console.log("old request url " + req.url) req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part console.log("new request url " + req.url) proxy.proxyRequest(req, res, { host: "other_domain.com", port: 3000 }); }); しかし、元のWebサーバー(またはエンドユーザー)には何も返されないため、運がありません。

8
Nginxリバースプロキシにより504ゲートウェイタイムアウトが発生する
Nginxをリバースプロキシとして使用しています。リバースプロキシは、要求を受け取り、proxy_passを実行して、ポート8001で実行されている上流サーバーから実際のWebアプリケーションを取得します。 mywebsite.comにアクセスするかwgetを実行すると、60秒後に504ゲートウェイタイムアウトが発生します...ただし、mywebsite.com:8001をロードすると、アプリケーションは期待どおりにロードされます。 そのため、何かが原因でNginxが上位サーバーと通信できません。 これはすべて、私のホスティング会社が私のものを実行していたマシンをリセットした後で始まりましたが、それ以前はまったく問題はありませんでした。 これが私のvhostsサーバーブロックです。 server { listen 80; server_name mywebsite.com; root /home/user/public_html/mywebsite.com/public; access_log /home/user/public_html/mywebsite.com/log/access.log upstreamlog; error_log /home/user/public_html/mywebsite.com/log/error.log; location / { proxy_pass http://xxx.xxx.xxx.xxx:8001; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } そして、私のNginxエラーログからの出力: 2014/06/27 13:10:58 [error] 31406#0: *1 upstream timed out (110: Connection timed out) while …

3
リモートサーバーとのSSLハンドシェイク中にエラーが発生しました
でApache2(443をリッスン)とWebサービスTomcat7(8443をリッスン)を実行していUbuntuます。 私は、apache2をリバースプロキシとして設定し、8443ではなくポート443を介してWebアプリにアクセスします。さらに、ブラウザーとapache2の間だけでなく、apache2とtomcat7の間でもSSL通信を行う必要があるため、apache2とtomcat7の両方でSSLを設定します。 。tomcat7に直接連絡してWebアプリにアクセスしようとすると、すべて問題ありません。問題は、apache2(リバースプロキシ)を介してTomcatのWebアプリにアクセスしようとすると、ブラウザーに次のエラーが表示されることです。 Proxy Error The proxy server could not handle the request GET /web_app. Reason: Error during SSL Handshake with remote server

3
APIゲートウェイとリバースプロキシ
マイクロサービスアーキテクチャを処理するために、リバースプロキシ(nginxやapache httpdなど)と一緒に使用されることが多く、横断的な懸念のために APIゲートウェイパターンが使用されます。リバースプロキシがAPIゲートウェイの機能を実行する場合があります。 これら2つのアプローチの明確な違いを確認するとよいでしょう。APIゲートウェイの使用の潜在的な利点は、複数のマイクロサービスを呼び出して結果を集約することです。APIゲートウェイの他のすべての責任は、リバースプロキシを使用して実装できます。 認証(nginx LUAスクリプトを使用して行うことができます); 輸送のセキュリティ。それ自体が逆プロキシタスクです。 負荷分散 .... したがって、これに基づいていくつかの質問があります: APIゲートウェイとリバースプロキシを同時に使用することは理にかなっていますか(たとえば、リクエスト-> APIゲートウェイ->リバースプロキシ(nginx)->具体的なmictoservice)。どのような場合に? APIゲートウェイを使用して実装でき、リバースプロキシで実装できない他の違いは何ですか?

3
既存のすべての静的ファイルをNGINXで直接提供し、残りをバックエンドサーバーにプロキシする方法。
location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if (-f $request_filename) { access_log off; expires 30d; break; } if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; # backend server listening break; } } 上記は、Nginxを使用して既存のすべてのファイルを直接提供します(たとえば、NginxはPHPソースコードを表示するだけです)。それ以外の場合は、リクエストをApacheに転送します。* .phpのリクエストもApacheに渡されて処理されるように、ルールから* .phpファイルを除外する必要があります。 Nginxですべての静的ファイルを処理し、Apacheですべての動的ファイルを処理する必要があります。 編集:ホワイトリストアプローチがありますが、それはあまりエレガントではありません。これらの拡張機能をすべて参照してください。これは必要ありません。 location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { access_log off; expires 30d; } location …

3
nginx-アップストリームサーバーからカスタムヘッダーを読み取ります
nginxをリバースプロキシとして使用していて、アップストリームサーバー(Apache)の応答からカスタムヘッダーを読み取ろうとしていますが、成功しません。Apacheの応答は次のとおりです。 HTTP/1.0 200 OK Date: Fri, 14 Sep 2012 20:18:29 GMT Server: Apache/2.2.17 (Ubuntu) X-Powered-By: PHP/5.3.5-1ubuntu7.10 Connection: close Content-Type: application/json; charset=UTF-8 My-custom-header: 1 My-custom-headerから値を読み取り、それをif句で使用したいと思います。 location / { // ... // get My-custom-header value here // ... } これは可能ですか?前もって感謝します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.