 
Fikker Cache をインストールして、高速化するための自己構築 CDN を構築します。ここ数日、Web サイトのテーマを変更するのに忙しかったので、この自己構築 CDN ツールをすぐに共有します。公式 Web サイトの紹介を注意深く検討した結果、Fikker はインストールも使用も簡単で、独自の CDN を構築するのに適したソフトウェアであることがわかりました。 公式サイトによると、Fikker は CDN/ウェブマスター向けのプロフェッショナルレベルの Web サイトキャッシュ (Webcache) およびリバースプロキシサーバーソフトウェア (Reversed Proxy Server) で、実装できる機能はリバースプロキシ + ページキャッシュ + リアルタイム監視 + となります。トラフィック統計 + リダイレクト管理 + HTTPS + CC 攻撃防止。 しかし、Fikker の無料版を見てみると、ページ キャッシュ機能は利用できないようです。無料版は、画像、JS、CSS などの静的リソースの CDN を高速化するためにのみ使用できます。 Fikker には、複数の Fikker キャッシュ ノードを均一に管理し、新しい CDN キャッシュ システムを形成するために使用できるメイン制御システムもあります。  ウェブサイト構築ソフトウェアとプログラムに関するその他の選択肢については、以下をご覧ください。
 ウェブサイト構築ソフトウェアとプログラムに関するその他の選択肢については、以下をご覧ください。
- LNMP: OneinStack のワンクリック インストール スクリプト - Let’s Encrypt 証明書を簡単に展開し、HTTPS サイトを構成します
- JW Player、ckplayer、Smartideo を使用してライブ ビデオ ステーションを構築 - 主要なビデオ Web サイトと rtmp をサポート
- Linux VPS ウェブサイト構築ツール LNMP 1.4 のインストールと使用 - SSL 自動構成更新とマルチバージョン PHP サポート
1.Fikkerのインストール方法
Fikker 公式 Web サイト: https://www.fikker.com、Guangzhou Feike Network Technology Co., Ltd. によって 2010 年に設立されました。 インストールの準備: Fikker はポート 80/443/6780 を監視する必要があります。サーバーに Nginx/Apache およびその他のサービスがすでにインストールされている場合は、最初に無効にする必要があります。インストールには新しい VPS を使用することをお勧めします。 。#安装wget,若已经安装这一步可省略
yum -y install wget 
#下载安装包
wget -c http://www.fikker.com/dl/fikkerd-3.7.3-linux-x86-64.tar.gz
#解压
tar zxvf fikkerd-3.7.3-linux-x86-64.tar.gz
#进入安装目录
cd fikkerd-3.7.3-linux-x86-64
#运行Fikker
./fikkerd.sh start#如果防火墙使用的iptables(Centos 6)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 6780 -j ACCEPT
service iptables save
service iptables restart
#如果使用的是firewall(CentOS 7)
firewall-cmd --zone=public --add-port=80/tcp --permanent 
firewall-cmd --zone=public --add-port=443/tcp --permanent 
firewall-cmd --zone=public --add-port=6780/tcp --permanent 
firewall-cmd --reload オリジン サイトを設定します: ホストを追加した後、オリジン サイトを追加した後、CDN ノードにデータの取得先を指示するリターントゥオリジン アドレスも設定する必要があります。 DNS を CDN ノードに解決できます。 (クリックして拡大)
 オリジン サイトを設定します: ホストを追加した後、オリジン サイトを追加した後、CDN ノードにデータの取得先を指示するリターントゥオリジン アドレスも設定する必要があります。 DNS を CDN ノードに解決できます。 (クリックして拡大)  その他の操作:  Fikker をサービスとして登録する必要がある場合は、次のコマンドを実行してください。
 その他の操作:  Fikker をサービスとして登録する必要がある場合は、次のコマンドを実行してください。#注册服务
./fikkerd.sh install
#停止服务
./fikkerd.sh stop
#删除服务
./fikkerd.sh uninstall3. 自社構築のCDNシステム
ステップ 1: まず、Fikker キャッシュをインストールします (Linux/Windows システムをサポート)。キャッシュ アクセラレーション/リバース プロキシなどのために、Fikker キャッシュを 1 つ以上のキャッシュ ノード サーバーにインストールします。 ステップ 2:  次に、Fikker CDN マスター コントロールをインストールします。複数のキャッシュ ノードを管理し、各ノードの構成/ドメイン名トラフィック統計/ユーザー管理/パッケージ管理を同期するために使用されます。注: オプションのインストール項目。ノード数が少ない場合、マスター コントロールは必要ありません。 (クリックして拡大)
 ステップ 2:  次に、Fikker CDN マスター コントロールをインストールします。複数のキャッシュ ノードを管理し、各ノードの構成/ドメイン名トラフィック統計/ユーザー管理/パッケージ管理を同期するために使用されます。注: オプションのインストール項目。ノード数が少ない場合、マスター コントロールは必要ありません。 (クリックして拡大)  ステップ 3:  最後に、サードパーティのインテリジェント解決 (Cloudxns/DNSpod/51DNS/DNSla など) を使用します。サードパーティのインテリジェントな解決を使用して、ポーリング/リージョン/ライン方式で Web サイトのドメイン名を各キャッシュ ノード サーバー IP に解決します。注: メイン コントロール IP に解決しないでください。
 ステップ 3:  最後に、サードパーティのインテリジェント解決 (Cloudxns/DNSpod/51DNS/DNSla など) を使用します。サードパーティのインテリジェントな解決を使用して、ポーリング/リージョン/ライン方式で Web サイトのドメイン名を各キャッシュ ノード サーバー IP に解決します。注: メイン コントロール IP に解決しないでください。 
4. まとめ
Fikker CDN は独自の CDN サービスを簡単に構築でき、HTTP/HTTPS をサポートしていますが、Fikker が 80/443 を占有しており、独自の WEB サービスと共存することができません。面倒な作業をしたくない場合は、サードパーティの CDN を使用してください。 CDN を有効にすると、プログラムによって取得されたユーザー IP がキャッシュ ノードの IP になっていることがわかります。ユーザーの実際の IP を取得するには、次のコードを参照して、対応する調整を行ってください。#php 获得用户真实 IP 代码举例:
function getRemoteIP()
{
    if (!isset($_SERVER["HTTP_X_FORWARDED_FOR"])) /* 存在 X-Forwarded-For 吗? */ 
    {
        return $_SERVER["REMOTE_ADDR"]; /* 兼容已有程序 */
    }
    
    return $_SERVER["HTTP_X_FORWARDED_FOR"]; /* 返回用户真实 IP, 如为多个 IP 时, 则取第一个 */
}
#asp.net 获得用户真实 IP 代码举例:
void getRemoteIP() 
{ 
    string SourceIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; /* 存在 X-Forwarded-For 吗? */
    if (string.IsNullOrEmpty(SourceIP)) 
    {
        SourceIP = Request.ServerVariables["REMOTE_ADDR"]; /* 兼容已有程序 */
    }
    
    Response.Write(SourceIP); /* 返回用户真实 IP, 如为多个 IP 时, 则取第一个 */
}
#asp 获得用户真实 IP 代码举例:
 0 Then 
strIPAddr = Request.ServerVariables("REMOTE_ADDR") 
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then 
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1) 
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then 
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1) 
Else 
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
End If 
getIP = Trim(Mid(strIPAddr, 1, 30)) 
End Function
ip=getRemoteIP()
response.write(ip)
%>