私たち (友人と私) は、nginx と geoip モジュールがインストールされた小さな専用サーバーを持っています。(適切にインストールされています) そのサーバーで、UWSGI とボトルを使用して単純な python スクリプトを実行します。スクリプトはバナーを回転させます。(自己PR用の自社バナー)
このスクリプトを使用して、所有している他のサイトに所有しているサイトのバナーを表示し、それらをローテーションして、ユーザーが常に同じバナーを表示しないようにします。
ジオターゲティングに問題があります。
次のペーストビンは、python スクリプトを示しています。
PAISES = ['AR', 'MX', 'CL']
Country_code を意味します。
TODOS
すべての国にバナーを表示するためのタグです。
異なるリストは、異なるバナー サイズ用です。ローテーションバナーのURLはこんな感じ。
exampleip /api/300x250
これは のサイズのテンプレートを呼び出す300x250
ので、ユーザーにはそのサイズのリストからランダムなバナーが表示されます。
それはうまくいきます。しかし、ジオターゲティングは機能していません。
コード (pastebin リンク) では、300x250 のバナーにアルゼンチンの「AR」コードしかないことがわかります。そのため、その国のユーザーだけがこれらの広告を見ることができます。ただし、他の IP については引き続き表示されます。
そしてこれを追加した後:
print('>>>>> ',request.headers.keys())
pais = request.get_header('GEOIP_CITY_COUNTRY_CODE')
print('=========== ' , pais, ' ==================')
(*注: パイは国を意味します)
そして、SSH 経由で UWSGI プロセスを実行すると、 が返さNone
れGEOIP_CITY_COUNTRY_CODE
ます。つまり、Python スクリプトにパラメーターを正しく渡していないということです。
Geoip モジュールは正しくインストールされていますが、このスクリプトは正しく機能していません。
私はそれを修正する必要があります。
複雑なことではないと確信しており、コードに何か間違ったことを書いているだけです。パラメータを uwsgi や python に渡していないのかもしれません。