コンテンツへスキップ

OpenLiteSpeed に CDN(Cloudflare) を組み合わせて AdSense に対応する方法

CDN(Cloudflare) を利用するとAdSense の収益が激減する

という訳で AdSense です。Google なんかの広告ですね。訪問者をカウントして計算している訳なんですが、CDN(Cloudflare)を利用すると収益が減ります。

減りました(´・ω・`)

いや、知ってて設定していたつもりでだったんですがね(言い訳)
Cloudflare に類する CDN を利用すると、訪問者のIPアドレスが CDN(Cloudflare) のIPに書き換えされてしまいます。(面倒なので Cloudflare に限定して話をします)

Cloudflare はリバースプロキシを利用している

簡単に言うと、Cloudflare が提供しているキャッシュ機能の為に訪問者のIPアドレスを書き換えしています。という訳でサーバ側に訪問者の元のIPを通知するよう設定をしなければいけません。ちなみに、Apache には mod_cloudflare という mod があって、それをインストールすれば良いのですが OpenLiteSpeed にはそんなのありません。

さて困った。

という訳で、Cloudflare のトラブルシューティングを検索してみました。

Restoring original visitor IPs: logging visitor IP addresses
https://support.cloudflare.com/hc/en-us/articles/200170786-How-do-I-restore-original-visitor-IP-with-Apache-2-4-

ここに設定方法一覧がありまして、OpenLiteSpeed は LiteSpeed server の項目にありました。

いざ、設定

[Server Configration] -> [General] の中に [Use Client IP Header] という設定があります。ここがデフォルトでは、「No」になっていました。これを「Yes」にするだけ。

それだけ……

phpinfo で確認した所、自分のIPに変わっていました。確認する所は、
$_SERVER[‘REMOTE_ADDR’]

$_SERVER[‘HTTP_X_FORWARDED_FOR’]
です。

ここが自分のIPに変わっていれば設定が正常に適応された事になります。
色々なサイトによっては、こういう設定はいる・いらないの議論が結構ありますが、最終的には Google の気まぐれひとつで変わってしまうので、とりあえずは変更しておく事をオススメします。

(2021/02/05 追記)
この記事を掲載してから、Google AdSense を確認したところページのインプレッション及びCPCが >500% となりました。やはり効果はある様に思います。お試しあれ。

「OpenLiteSpeed に CDN(Cloudflare) を組み合わせて AdSense に対応する方法」への2件のフィードバック

  1. 貴重な記事ありがとうございます。匿名で失礼します。

    自分もCloudflareを経由したところAdsense収入が減ってしまったので困っていたところでした。
    1点お伺いしたいのですがphpinfoで「$_SERVER[‘HTTP_X_FORWARDED_FOR’]」の値が
    自分のIPアドレスともう1つ不明なIPアドレス(Cloudflare?)が記載されているのですが、この場合正しくないのでしょうか?
    (正しい場合、自分のIPアドレスしか表示されないものなのでしょうか?)
    例: 49.96.240.34, 172.70.122.24

    煩わしい質問で申し訳ありませんがアドバイス頂ければ助かります。

  2. 匿名様
    $_SERVER[‘HTTP_X_FORWARDED_FOR’] ですが、ここに複数のIPが入る事はままあります。
    例えば、多段プロキシの場合です。
    サーバ側にプロキシ機能を持ち、その上位にプロバイダやクラウドサービスのロードバランサーがあったりすると、2回プロキシを挟む事になります。
    雑に言えば、X_FORWARDED_FOR はその名前の通り、fowarded for でどこから飛んできたか記録する訳なので、多段プロキシにすれば当然その記録が残ります。
    つまりサーバ側のプロキシから見れば、自IP・Cloudflareと記録されます。
    こういう変数に複数?というのは一瞬疑いますが、構成次第ではそれが正しいです。

    あとはAdsenseが複数IPをどう処理しているかですが、世の中には多段プロキシなんて腐る程あるので、同一IPと見なす事は無いと思います。
    とりあえず元のご質問の X_FORWARDED_FOR に複数IPが入るのは正しいです。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください