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

リバースプロキシは、クライアント用に定義された特定のサーバーセットからリソースをフェッチするプロキシサーバーの一種です。これは、セキュリティ上の理由から、または利用可能なパブリックIPアドレスの不足のために、コンテンツを含むWebサーバーを直接公開しないことが有利な場合に使用されます。

5
Nginxリバースプロキシ+ URL書き換え
Nginxはポート80で実行されており、この方法で/fooポートへのパスを持つプロキシURLをリバースするために使用しています3200。 location /foo { proxy_pass http://localhost:3200; proxy_redirect off; proxy_set_header Host $host; } これは正常に機能しますが3200、port にアプリケーションがあり、そのためにイニシャル/fooを送信したくありません。つまりhttp://localhost/foo/bar、アクセスするときに/bar、アプリが受信したパスになりたいだけです。そこで、上記のロケーションブロックにこの行を追加してみました。 rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent; これにより302リダイレクト(URLの変更)が発生しますが、301が必要です。どうすればよいですか?

13
Nginxをキャッシングリバースプロキシとして設定する方法は?
最近、Nginxがリバースプロキシ機能にキャッシュを追加したと聞きました。私は周りを見回したが、それについて多くの情報を見つけることができなかった。 Apache / Djangoの前にNginxをキャッシュリバースプロキシとして設定します:一部の(すべてではない)動的ページのApacheへのNginxプロキシリクエストを取得し、生成されたページをキャッシュして、キャッシュからそれらのページの後続のリクエストを処理します。 理想的には、2つの方法でキャッシュを無効にしたいと思います。 キャッシュされたアイテムに有効期限を設定します キャッシュされたアイテムを明示的に無効にします。たとえば、Djangoバックエンドが特定のデータを更新した場合、影響を受けるページのキャッシュを無効にするようにNginxに指示したい それを行うためにNginxを設定することは可能ですか?どうやって?


7
リバースプロキシするときにnginxがアップストリームのホスト名を渡すようにする
ホスト名を使用していくつかのdockerコンテナーを実行します。 web1.local web2.local web3.local これらへのルーティングは、nginxによるホスト名に基づいて行われます。このセットアップの前に(インターネットに接続されている別のマシン上に)プロキシがあり、アップストリームを次のように定義しています。 upstream main { server web1.local:80; server web2.local:80; server web3.local:80; } 実際の仮想ホストの説明: server { listen 80; server_name example.com; location / { proxy_pass http://main; } } 現在、コンテナは「web1.local」ではなく「main」というホスト名を受け取るため、リクエストに適切に応答しません。 質問:要求をプロキシするときに、Host:ヘッダーでサーバーの上流グループの名前の代わりに上流サーバーの名前を渡すようにnginxに指示するにはどうすればよいですか?

4
別のWebサーバーに要求を転送するようにIISを構成できますか?
ホストヘッダーによって区別される1つのIIS 6サーバーに複数のWebサイトをセットアップしています。 ただし、ネットワーク上のLinux / Apacheサーバーがサービスを提供するサイトの1つを希望します。IISにリバースプロキシアドインを使用する必要がありますか、またはすべての要求を別のサーバーに渡すようにIISに指示する簡単な方法はありますか?

2
アップストリームの応答は一時ファイルにバッファリングされます
私はむしろ大きくて遅い(複雑なデータ、複雑なフロントエンド)のWebアプリケーションで構築していRoRとによって提供されるPumaとnginxのようにリバースプロキシを。見てみるとnginx、エラーログ、私は次のようにかなりの数のエントリを参照してください。 2014/04/08 09:46:08 [warn] 20058#0: *819237 an upstream response is buffered to a temporary file /var/lib/nginx/proxy/8/47/0000038478 while reading upstream, client: 5.144.169.242, server: engagement-console.foo.it, request: "GET /elements/pending?customer_id=2&page=2 HTTP/1.0", upstream: "http://unix:///home/deployer/apps/conversationflow/shared/sockets/puma.sock:/elements/pending?customer_id=2&page=2", host: "ec.reputationmonitor.it", referrer: "http://ec.foo.it/elements/pending?customer_id=2&page=3" 異なるユーザーや異なるユーザーインタラクションでページが同じままである可​​能性は非常に低いので、かなり興味があり、ディスク上の応答のバッファリングが必要/有用であるとは思わないでしょう。 私はproxy_max_temp_file_sizeそれを知っていて0に設定していますが、少し気まずいようです(私のプロキシはバッファリングしようとしますが、バッファリングするファイルがありません...どうすればもっと速くできますか?) 私の質問は: [警告]を削除して、応答のバッファリングを回避するにはどうすればよいですか?オフにするproxy_bufferingかproxy_max_temp_file_size、0 に設定する方が良いですか?どうして? 場合nginxの応答をバッファリング:ときには、バッファへの応答、および理由を提供していますか? なぜnginxなりproxy_buffering、デフォルトでオンにし、それが実際に応答をバッファリング場合S [警告]? 応答がそのオプションをトリガーするのはいつですか?応答を提供するのに>数秒(何秒)かかりますか?これは構成可能ですか? TIA、ngw。

3
nginx real_ip_headerとX-Forwarded-Forが間違っているようです
HTTPヘッダーのウィキペディアの説明X-Forwarded-Forは次のとおりです。 X-Forwarded-For:client1、proxy1、proxy2、... ディレクティブのnginxドキュメントにはreal_ip_header、次の部分があります。 このディレクティブは、置換IPアドレスの転送に使用されるヘッダーの名前を設定します。 X-Forwarded-Forの場合、このモジュールはX-Forwarded-Forヘッダーの最後の IPを置換に使用します。[エンファシス鉱山] これらの2つの説明は、相反するように見えます。このシナリオでは、X-Forwarded-Forヘッダーは説明したとおりです。クライアントの「実際の」IPアドレスは左端のエントリです。同様に、nginxの動作は、右端の値を使用することです。これは、明らかにプロキシサーバーの1つにすぎません。 私の理解でX-Real-IPは、プロキシではなく、実際のクライアントIPアドレスを決定するために使用されることになっています。私は何かを見逃していますか、これはnginxのバグですか? そして、それを超えて、誰でも作る方法について何か提案していないX-Real-IPヘッダが表示され、左の定義によって示されるように、 -ほとんどの値はX-Forwarded-For?

3
リバースプロキシで相対URLを正しく処理する方法
Apacheで次のようなリバースプロキシをセットアップしています。 アドレスがwww.example.com/folderのサーバーAは、リバースプロキシサーバーです。 マッピング先:アドレスがtest.madeupurl.comのサーバーB この種の作品。しかし、私が抱えている問題は、www.example.com / folderで、すべての相対リンクがwww.example.com/folder/css/examplefilenameではなくwww.example.com/css/examplefilename.cssの形式であることです。 CSS どうすれば修正できますか? これまでのところ、私の逆プロキシはサーバーA(www.example.com)でこれを持っています: <Location /folder> ProxyPass http://test.madeupurl.com ProxyPassReverse http://test.madeupurl.com </Location>


2
NginxをアップストリームSSLを使用したリバースプロキシとして構成する
Nginxサーバーをリバースプロキシとして構成して、クライアントから受信するhttps要求がhttpsを介して上流サーバーにも転送されるようにします。 使用する構成は次のとおりです。 http { # enable reverse proxy proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for; upstream streaming_example_com { server WEBSERVER_IP:443; } server { listen 443 default ssl; server_name streaming.example.com; access_log /tmp/nginx_reverse_access.log; error_log /tmp/nginx_reverse_error.log; root /usr/local/nginx/html; index index.html; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_certificate /etc/nginx/ssl/example.com.crt; ssl_certificate_key /etc/nginx/ssl/example.com.key; ssl_verify_client …

5
リバースプロキシとしてのNginxとApache、どちらを選択するか
この種の質問はここで尋ねられたかもしれませんが、私の質問に実際に一致するものは見つかりませんでした。nginxのパフォーマンスは非常に優れていると聞きましたが、Apacheにはヘルプが必要なドキュメント、コミュニティ(read:expert)があります 今、私が知りたいこと、両方のWebサーバーがパフォーマンス、設定の容易さ、カスタマイズのレベルなどの点でどのように比較するか。VPS環境でのリバースプロキシサーバーとして?? 私はまだ、シン(Ruby Webサーバーの1つ)で提供されるルビーWebアプリ(RORではない)の2つを比較しています。 具体的な回答をいただければ幸いです。ルビー部分に触れない一般的な答えは大丈夫です。私はまだWebサーバー管理の初心者です。

7
名前ベースの仮想ホストSSHリバースプロキシはありますか?
開発環境でHTTPリバースプロキシが大好きになり、DNSベースの仮想ホストリバースプロキシが非常に便利であることがわかりました。ファイアウォールで1つのポート(および標準ポート)のみを開くと、管理がはるかに簡単になります。 SSH接続に似たものを見つけたいのですが、あまり運がありません。標準以外のポート範囲を開く必要があるため、単純にSSHトンネリングを使用するのは好ましくありません。これを行うことができるものはありますか? HAProxyはこれを実行できますか?

4
エラーログよりもさらにnginxをデバッグするにはどうすればよいですか?
現在、かなり大きなHTTPフラッドを受信して​​いるため、nginxリバースプロキシが502 Bad Gatewayを生成しています。 バックエンドサーバーのプロキシとしてnginxを実行しているフロントエンドサーバーがありますが、connect() failed (110: Connection timed out) while connecting to upstreamエラーが大量に発生しています。それらのトン。プロキシサーバーをバイパスしてバックエンドに接続すると、サイトを正常に実行できるので、どこかにリバースプロキシが存在することがわかります。ただし、タイムアウトの原因を特定する方法はわかりません。 何か助け? CentOS 6.2でnginx 1.2.3を実行する

3
Apache Loadbalancerとバックエンドの間でHttpsを使用する
2台のapacheサーバーの前にロードバランサーとして構成されたapache(2.4)サーバーを使用しています。ロードバランサーとバックエンドの間でhttp接続を使用すると正常に機能しますが、httpsを使用しても機能しません。ロードバランサーの構成: SSLProxyEngine on SSLProxyVerify none SSLProxyCheckPeerCN off <Proxy balancer://testcluster> BalancerMember https://[Backend1]:443/test BalancerMember https://[Backend2]:443/test </Proxy> ProxyPass /test balancer://testcluster 現在のところ、バックエンドには自己署名証明書しかありません。そのため、証明書の検証は無効になっています。 ロードバランサーのエラーログには次が含まれます。 [proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1]) [proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server …

3
NGINXを使用したHTTPバックエンドへのHTTPS要求のプロキシ
HTTP経由でバックエンドと通信する外部から見えるウェブサーバーとしてnginxを設定しています。 私が達成したいシナリオは次のとおりです。 クライアントは、同じURLにリダイレクトされるがHTTPS経由のnginxにHTTPリクエストを行います nginxプロキシがHTTP経由でバックエンドにリクエストを送信します nginxは、HTTP経由でバックエンドから応答を受け取ります。 nginxはこれをHTTPS経由でクライアントに返します 私の現在の構成(バックエンドが正しく構成されている)は次のとおりです。 サーバー{ 80を聞きます。 server_name localhost; ロケーション〜。* { proxy_pass http:// backend; proxy_redirect http:// backend https:// $ host; proxy_set_header Host $ host; } } 私の問題は、クライアントへの応答(ステップ4)がHTTPSではなくHTTPで送信されることです。何か案は?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.