問題タブ [varnish-vcl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - ページ内のコンテンツをワニス + 正規表現に置き換える
ページを提供または保存する前に (vcl_fetch?)、ワニス キャッシュ サーバーでバックエンドからページ内のコンテンツを置き換える (つまり、div のクラスを変更する) ようにするにはどうすればよいですか?
ワニスでネイティブにサポートされていると思うので、単純な正規表現を使用して置換を実行したいと思います。
varnish - Varnish は X-Forwarded-for からパブリック IP を削除します
特定のケースでワニスが中間プロキシ IP またはパブリック IP を送信しないという問題に直面しています。シナリオは次のとおりです。
一部のホテル/会社では squid プロキシが構成されており、インターネットのすべてのトラフィックが Squid 経由でルーティングされます。
私の会社のサイトにアクセスするユーザーは、最初にロード バランサーにアクセスし、次に Varnish、次に Apache にアクセスします
- Apache は mod_geoip で構成されています。私のサイトのコードは、IP アドレスに基づいて国のリダイレクトを行います。
問題 :
- ユーザー (その squid プロキシの背後) がロード バランサーの背後にある私の会社の Web サイトにアクセスする場合 -> VARNISH -> Apache - ここで、Apache は内部 IP (彼のプライベート IP) とロード バランサーの内部 IP のみを X-forwarded-for として取得するため、IP ベースリダイレクト失敗!
Apache ログ (X-Forwarded-IP をログに記録するように構成) では、ユーザーのプライベート IP と、次にマイ ロード バランサーのプライベート IP が表示されます。
172.10.5.10、LoadBalancerIP - - [.......]
- 同じユーザーが Varnish を持たない別のサイトにアクセスすると、Load Balancer -> Apache にヒットします。ここで、apache はユーザーのプライベート IP とユーザーのパブリック IP を X-forwarded-for として取得し、IP ベースの国のリダイレクトは正常に機能します。
Apache ログ (X-Forwarded-IP をログに記録するように構成されています) では、ユーザーのプライベート IP と彼のパブリック IP もログに記録されていることがわかります。
172.10.5.10、PublicIP - - [.......]
私のワニス構成は以下の通りです。
PS: 見つけたすべてのリンクを既に Google で検索しており、すべてのリンクから次の Varnish Config が得られます
今のところ、この問題を解決するには、ワニスをバイパスする必要があり、ウェブサイトのトラフィックが Apache に直接ヒットするようになりましたが、キャッシュと高速配信からサーバー コンテンツにワニスを戻す必要があります。
誰かがこの問題を解決する方法を教えてくれれば幸いです。
ありがとう!
caching - Varnish: ヒット/ミス統計をバックエンドに送信する方法
お役に立てれば幸いです
その場で画像を生成する画像サーバーがあります。生成された画像をキャッシュするためにワニスを使用しています。
ワニスが受け取った (画像ごとの) リクエスト数と、それがヒットかミスか (パスはミスとしてマークされる) を記録する必要があります。現在、ヒット/ミスを含むアクセスログをファイルに書き込んでいます。次に、crontab を使用してこのアクセスログファイルを処理し、データをデータベースに書き込みます...
代わりにやりたいことは次のとおりです。
Varnish でバックエンドにリクエストを送信し、キャッシュ ヒットを通知します (可能であれば、応答サイズ (バイト))。バックエンドはこのデータを保存できます...
これはまったく可能ですか?
誰かが興味を持っている場合:
- それぞれ 1 つの (java+tomcat) バックエンドを持つ 2 つのワニス インスタンス。
- サービスは、リクエストで行われた要件に固有の各画像を操作および生成します...
以下は1日あたりです。
- 各ページに少なくとも 3 つの画像が含まれる 3,500 万を超えるページビュー。
- Varnish は、約 300 万件以上の画像リクエストを受け取ります (画像はブラウザによってキャッシュされます)。
- ワニスの命中率は87%
- ヒットの応答時間は数マイクロ秒
- ミスの応答時間は、画像のサイズ (ソースと出力の両方) に応じて 50 ミリ秒から 1000 ミリ秒です。
ruby - ワニスキャッシュでCookieを管理するRuby on Railsアプリケーション
新しくデプロイした Rails Web アプリケーションにワニスを実装したいと考えています。
Rails バージョン 3.2.12 と
Ruby 1.9.2p318 (2012-02-14 リビジョン 34678) [i686-linux]
私のアプリケーションでは、ユーザー認証は Cookie によって行われますが、Cookie が存在する場合、ニスはコンテンツをキャッシュしていません。そのため、ログインしているユーザーの場合、ニスがアプリケーションにリクエストを転送していることがわかりました。これを解決する方法がわかりません。バーニッシュ構成ファイルにいくつかのブロックを入れる必要があるかもしれません.しかし、それはライブであり、ユーザーは私のアプリケーションを使用しています.私はバーニッシュを停止しました.どんな具体的な助けも本当に感謝されます.
varnish - VCL で、オブジェクトを配信する前に、S3 のような、署名された、期限付きのリクエストをニスで処理する
この質問は少し奇妙に思えるかもしれませんが、VCL の貧しい人々 のソリューションを使用して、リファラー (メイン) によって作成された署名付き要求 (共有秘密鍵、別名 HMAC の貧しい人々 のソリューション) を解析することは可能ですか?署名が正しく、(署名された) タイムスタンプの有効期限が切れていない場合にのみ、ワニスからコンテンツを提供しますか?
つまり、Amazon S3 の仕組みと同様に、定義された秒数で期限切れになる S3 オブジェクトへの署名付き一時 URL を簡単に作成できます。
注: ここでは、キャッシュ オブジェクトの有効期限についてではなく、クライアントの URL の有効期限について説明しています。
リファラーヘッダーをチェックせずに長期的なホットリンクを防ぐために、一時的な URL のみをユーザーに提供したい場合に便利です。
そのため、内部オブジェクトを期限切れにする VCL (できれば vcl_recv 内) の一時 URL に対する貧弱な解決策です)。VMODを作らなくても可能ですか?
編集:
Varnish を使用してコンテンツを承認する別の方法を見つけました。
http://monolight.cc/2011/04/content-authorization-with-varnish/
しかし、それはまだ私が達成したいことではありません。
よろしくお願いします!
magento - ワニスを使用した Magento 多言語ストア
多言語 Magento ストアが Varnish とどのように連携するか。ワニスで利用可能な構成はありますか? Cookie に基づいてキャッシュを作成できますか?
varnish - ドメインのwwwバージョンでワニスが作動しない
2 つの異なるドメインで 2 つのサイトを実行するサーバーにワニスをセットアップしました。ワニスは 2 つのドメインの前に www がなくても完璧に動作します。このペーストビンに vcl ファイルを添付しました。どこかで基本的な設定ミスだと思いますが、できます。どこが分からない - 解決策を知っている人はいますか?
apache - Varnish 構成の httpd 構成でリッスン ポートを変更する
Varnish Cache を CentOS サーバーにインストールしました。do 構成を正しく試してみましたが、多くのドキュメントを読んで、Apache ポートListen 80
を に変更するように言われましたListen 8080
。しかし、私のサーバーには Listen 80 の行が見つかりませんでしたが、行は/etc/httpd/conf/httpd.conf
見つかりまし0.0.0.0:80
た。同じことですか?それらが同じものである場合、サイトを変更すると機能しなくなります。
私は大きな論理的な間違いを犯していることを知っていますが、理解できません。
ありがとう
nginx - Nginx と Varnish のみがウェルカム ページを提供する
新しいUbuntu 12.04サーバーにNginxとワニスをインストールして構成しました。Nginx を 1.4.1 にアップグレードした後、いくつかの構成設定を更新する必要がありました。現在、Nginxの「Welcome to nginx!」のみが表示されています。ページ。
DNS設定を新しいサーバーに更新するまで、直接IPアドレスを介してこのサイトにアクセスする必要がありますが、それが問題になるかどうかはわかりません.
これが私の構成です:
Nginx のデフォルト、/etc/nginx/sites-available/default:
Varnish デフォルト VCL、etc/varnish/default.vcl
ニス、/etc/default/varnish
caching - 範囲リクエストをキャッシュするように Varnish を設定するにはどうすればよいですか?
範囲リクエストをキャッシュするように Varnish を設定しようとしています。オプションに気づきましたhttp_range_support
が、私が読んだすべてのことは、これが要求を満たす前にファイル全体をキャッシュしようとすることを示しています. ファイル全体が既にキャッシュされている必要なく、そうすることが可能ですか?