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

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

1
Traefikを使用した単純なリバースプロキシ
私は現在、この種の設定を使用して、LXDコンテナのプロキシとしてApacheを使用しています。 <VirtualHost *:80> ServerName example.com ProxyRequests off ProxyPass / http://10.0.0.142/ retry=0 ProxyPassReverse / http://10.0.0.142/ ProxyPreserveHost On </VirtualHost> traefikに切り替えたいのですが。私はこの構成を試しました: defaultEntryPoints = ["http"] [entryPoints] [entryPoints.http] address = ":80" [backends] [backends.backend1] [backends.backend1.servers.server1] url = "http://10.0.0.142" [frontends] [frontends.frontend1] backend = "backend1" passHostHeader = true [frontends.frontend1.routes.example] rule = "Host:example.com" これら2つは同等ですか? traefik構成を簡略化できますか?(不要なルールを削除) (注:dockerを使用する予定はないので、使用しないことをお勧めします。)

1
Real-IPを使用しているときに$ remote_addrの元の値をログに記録する方法
私の環境には、いくつかのシステムを通過するユーザーリクエストがあります。 [クライアント]-> [ELB] ---> [nginx]-> [ウェブ] (ELB = AWS Elastic Load Balancer) これのおかげで答えが、私はnginxの決定と上流側のサーバー(ウェブ)への正しいクライアントのIPアドレスを渡しているX-Forwarded-ForとX-Real_IP、ヘッダー。関連するnginx設定: real_ip_header X-Forwarded-For; set_real_ip_from 10.0.0.0/8; real_ip_recursive on; proxy_set_header X-Real-IP $remote_addr; 私の問題はこれです。nginxのReal IPモジュールは、既存の$remote_addr変数をそのX-Forwarded-For計算結果で置き換えます。これにより、元のクライアントIPが得られますが、実際にリクエストをプロキシ(ELB)に送信したシステムのIPアドレスが失われます。 全体として、クライアントIPを持つことは私にとってより重要ですが、トラフィックの流れを理解(およびデバッグ)できるように、リクエストのチェーン全体をログに記録できるようにしたいと考えています。現在、私はnginxにクライアントIP、自身のIP、および上流サーバーのIPのみを記録させることができます。ELB IPもログに記録できるようにしたいと思います。 私が見るX-Istenceが同じ尋ねた質問を少し運と、2013年に。それ以来何か変更または改善されましたか?

2
オンザフライでnginxによってプロキシされているデータを変更する
私は外部ホストからリクエストを受け取り、内部サーバーにそれらをプロキシするnginxセットアップを持っています。 構成は次のようになります。 server { listen 10.0.0.66:443; server_name my.example.com; root /websites/my.example.com ssl on; ssl_certificate /websites/ssl/my.example.com.crt; ssl_certificate /websites/ssl/my.example.com.key; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; location / { proxy_pass https://10.0.0.100:3000/; } } 実験/テストの目的で、内部ホストが任意のバイナリを通じて応答したものを実行し、バイナリが応答したもので応答できるようにしたいと思います。 以下の場合の例、私が代理で縮小化HTMLに望んでいた場合、私はhtmlcompressorを介してサーバの応答を実行しますし、クライアントへのプロキシの応答として出力を送ります。最終結果は、エンドクライアントが縮小されたhtmlを取り戻すことになります。 ローカルで提供されるデータに対してこれを実現するnginxにはあらゆる種類のアドオンと例があることを知っていますが、プロキシ用にそれを設定する方法は?

2
500エラーおよび/またはサーバー停止時にバックアップするHAProxyスイッチ
特定の構成で、2台のバックエンドサーバーの前にHAProxyを設定しています。すべての要求はサーバーAに送信する必要があります。ただし、サーバーAが5xxエラーコードを返す場合、すべての要求はバックアップサーバーBに送られます。Aが「up」を返すと、すべての要求がAに送られます。 私はこの構成を試しています: backend example_cluster balance roundrobin option httpclose option forwardfor option httpchk HEAD /ping.html HTTP/1.0\r\nHost:www.example.com http-check disable-on-404 default-server error-limit 1 on-error mark-down redirect scheme https if !{ ssl_fc } server node1 1.2.3.4:80 check observe layer7 server node_back 5.6.7.8:443 backup ssl verify none ただし、次の2つの理由で機能しません。 node1(A)が起動している場合でも、すべてのリクエストはサーバーのnode_back(B)にルーティングされます。 サーバーAに対してhttpcheckが実行されていないようです。以上、syslogにサーバーAのダウンに関するエラーは表示されません。 「option httpchk」行とそのすぐ下の2行を削除すると、また、サーバーAの「observe layer7」も削除します。HAProxyはすべてのリクエストをノードAにルーティングすることで機能します。ただし、サーバーAが500を返す場合、HAProxyはBに切り替わりません。したがって、問題はオプションのhttpchk構成にあると想定しています。

5
HTTP / 1.1 ETagおよびIf-None-Matchヘッダーをサポートするリバースプロキシはどれですか。
キャッシングにリバースプロキシを使用するeコマースプラットフォーム用のキャッシングシステムを開発しています。適切なHTTP / 1.1ヘッダーを使用して無効化を処理する予定です。つまり、コンテンツの最初の世代にETagを設定し、そのETag値をアプリケーションにキャッシュします。Cache-Controlヘッダーは「must-revalidate」を指定するため、プロキシはETagを使用した後続のリクエストでIf-None-Matchヘッダーを設定する必要があります。アプリケーションはキャッシュされたETag値を検索し、一致する場合は304応答を送信し、それ以外の場合は完全な200応答を生成します。 私はnginxを使用したいと思っていましたが、それがETagをサポートしていることを確信できません(ドキュメントはそれがサポートしていないことを示していますが、おそらく古くなっていますか?)。ワニスは別のオプションですが、私もここでは前向きではありません。 ETagを完全にサポートしているリバースプロキシサーバーはどれですか。実際に複数のバージョンをキャッシュして、キャッシュを無効にせずにスプリットテストなどを実行できるようにしたいと考えています。つまり、HTTP / 1.1は、クライアントが複数のETag値を持つIf-None-Matchを送信でき、サーバーが一致するETag(存在する場合)で応答する必要があることを指定します。リバースプロキシが最後に表示された値だけでなく複数のコピーを保持し、使用するリクエストごとにサーバーに指定させる場合、それは理想的です。

1
ルートを含むTomcatへのドメイン全体のProxyPass
すべてのリクエストをTomcatサーバーにプロキシするようにVirtualHost example.comを設定しました ProxyPass / http://localhost:8088/app ProxyPassReverse / http://localhost:8088/app これは、のようなURLの罰金に動作しますexample.com/pageたがために、example.comとexample.com/私はこのリダイレクト応答、何も明らかにリードを取得します。 HTTP/1.1 302 Moved Temporarily Date: Wed, 06 Jul 2011 21:13:37 GMT Server: Apache-Coyote/1.1 <-- the redirect comes from tomcat Location: http://example.com/app/ <-- nonsense ... それを修正するにはどうすればよいですか?できれば、Apacheの設定で。 Apache 2とTomcat 7を使用しています

3
Apacheリバースプロキシアクセスコントロール
現在、いくつかのサイトのリバースプロキシであるApacheリバースプロキシがあります。ただし、特定のIPのみがアクセスできる新しいサイト(newsite.comと呼ぶことにします)を追加します。これはApacheをリバースプロキシとして使用できますか? プロキシされているサイトにはVirtualHostsを使用しています。Allow / DenyディレクティブをLocationステートメントと組み合わせて使用​​してみました。例えば: <VirtualHost *:80> Servername newsite.com <Location http://newsite.com> Order Deny,Allow Deny from all Allow from x.x.x.x </Location> <IfModule rewrite_module> RewriteRule ^/$ http://newsite.internal.com [proxy] </IfModule> また、プロキシディレクティブでサイトの許可/拒否を具体的に設定してみました。たとえば、 <Proxy http://newsite.com/> Order deny,allow Deny from all Allow from x.x.x.x </Proxy> プロキシされたサイトの残りの部分については、まだこの定義があります。 <Proxy *> Order deny,allow Allow from all </Proxy> 私が何をしても、どこからでもアクセスできるようです。これは、他のすべてのプロキシサイトの定義のためです。プロキシディレクティブを適用する順序はありますか?* 1の前後の両方で、VirtualHostステートメント内にもnewsiteがありました。

5
WebサーバーのDNSをあるIPアドレスから別のIPアドレスにスムーズに移行するにはどうすればよいですか?
現在、Linux / Apacheサーバー用に登録されているドメイン名を、新しいIPアドレスで別のサーバーに置き換えます。 データの移行は比較的速く、そのプロセス中に5分の中断が許容されます。 DNSレコードのTTLは6〜12時間で、明らかに高速化できません。 この変更の結果として考えられるものは何ですか?おそらく古いアドレスをまだ見ているユーザーは引き続き古いサーバーにアクセスしますが、DNSキャッシュの有効期限が切れているか空のユーザーには新しいドメインが表示されます。 古いサーバー(Apacheまたはiptablesを使用)から新しいIPに何らかのリダイレクトを行うことはできますか?古いサーバーは、必要な限り実行を継続できます。

1
Spring Boot Apache SSLリバースプロキシ
Amazon Linuxサーバーで実行されるSpring Bootアプリケーションがあります。このアプリケーションのプロキシサーバーとしてApache HTTPサーバーを使用します。最近、Let's Encrypt SSL証明書をインストールし、そのためにApacheに仮想ホストエントリを追加しました。ただし、Spring Bootで正しく動作させることはできません。ただし、SSLバージョンは正常に動作していないようです。 私が観察したのは、ユーザーがhttpsバージョンを呼び出したときにリクエストがSpring Bootアプリケーションに届くが、ユーザーがApacheからHTTP 404エラーを受け取るということです。たとえば、これは正常に動作します:http : //example.com/oauth/tokenしかし、これは動作せず、404を返します:https : //example.com/oauth/token 以下に設定ファイルを投稿しましたが、何が欠けていますか? vhosts.conf <VirtualHost *:443> ServerName example.com ServerAlias www.example.com ServerAdmin support@example.com DocumentRoot /var/www/example.com/public_html ErrorLog /var/www/example.com/logs/error.log CustomLog /var/www/example.com/logs/access.log combined RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d RewriteRule ^ - [L] RewriteRule ^(/api/v1) - [L] RewriteRule ^(/oauth/token) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.