قم بتثبيت Fikker Cache لإنشاء شبكة CDN ذاتية الصنع لتسريع العمل، نظرًا لأنني كنت مشغولًا بتعديل سمة موقع الويب في الأيام القليلة الماضية، فقد قمت الآن بمشاركة أداة CDN ذاتية البناء هذه. بعد دراسة المقدمة بعناية على الموقع الرسمي، وجدت أن Fikker سهل التثبيت والاستخدام، وهو برنامج جيد لبناء CDN الخاص بك. وفقًا للموقع الرسمي، فإن Fikker عبارة عن ذاكرة تخزين مؤقت لموقع الويب على المستوى الاحترافي (Webcache) وبرنامج خادم وكيل عكسي (Reversed Proxy Server) لـ CDN/مشرفي المواقع، وتشمل الوظائف التي يمكن تنفيذها الوكيل العكسي + التخزين المؤقت للصفحة + المراقبة في الوقت الفعلي + إحصائيات حركة المرور + إدارة إعادة التوجيه + منع هجمات HTTPS + CC. ولكن بعد النظر إلى الإصدار المجاني من Fikker، يبدو أن وظيفة التخزين المؤقت للصفحة غير متاحة لذا لا يمكن استخدام الإصدار المجاني إلا لتسريع CDN للموارد الثابتة مثل الصور وJS وCSS. يحتوي Fikker أيضًا على نظام تحكم رئيسي، والذي يمكن استخدامه لإدارة عقد ذاكرة التخزين المؤقت المتعددة لـ Fikker بشكل موحد وتشكيل نظام ذاكرة تخزين مؤقت CDN جديد. استخدم Fikker لإنشاء CDN الخاص بك - يدعم HTTPS والتخزين المؤقت للصفحة والمراقبة في الوقت الفعلي وإحصائيات حركة المرور ومنع هجمات CC لمزيد من الخيارات حول برامج وبرامج إنشاء مواقع الويب، يمكنك الاطلاع على:

  1. LNMP: برنامج نصي للتثبيت بنقرة واحدة لـ OneinStack - يمكنك بسهولة نشر شهادة Let's Encrypt وتكوين موقع HTTPS
  2. استخدم JW Player وckplayer وSmartideo لإنشاء محطة فيديو حية - تدعم مواقع الفيديو الرئيسية وRTMP
  3. أداة إنشاء موقع Linux VPS، تثبيت LNMP 1.4 واستخدامه، تجديد التكوين التلقائي لـ SSL ودعم PHP متعدد الإصدارات
ملاحظة: تم التحديث في 17 نوفمبر 2017، أطلق مزود خدمة CDN الشهير Cloudflare خطة توزيع تعاونية. يمكنك أيضًا الانضمام إلى Cloudflare Partner لتزويد الجميع بخدمات CDN المجانية: انضم إلى Cloudflare Partner لتوفير CloudFlare مجانًا. خدمة تسريع CDN - لا حاجة لتعديل NS لدعم SSL.

1. طريقة تركيب فكر

موقع Fikker الرسمي: https://www.fikker.com، تم تأسيسه في عام 2010 بواسطة شركة قوانغتشو Feike Network Technology Co., Ltd. التحضير للتثبيت: يحتاج 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
ابدأ التثبيت: انسخ الأوامر التالية بالتسلسل (يتطلب مستخدمًا جذريًا) وقم بتنفيذها ملاحظة: إنها مناسبة لإصدارات 64 بت من أنظمة التشغيل مثل CentOS 6.x/7.x لا يتطلب وحدة المعالجة المركزية وأكثر من 4 جيجابايت من الذاكرة. كما ذكر أعلاه، يستمع Fikker إلى المنفذ 80/443/6780. يرجى ملاحظة أنه في منفذ جدار الحماية، أدخل الأمر التالي:
#如果防火墙使用的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
بعد الانتهاء، قم بزيارة http://IP:6780. كلمة المرور الأولية هي 123456. إذا تعذر فتحها، يرجى إدخال الأمر netstat -apn|grep '6780' للتحقق مما إذا كان المنفذ يستمع وما إذا كان جدار الحماية يسمح بالمنفذ. . قم بتعيين الموقع الأصلي: بعد إضافة المضيف، تحتاج أيضًا إلى تعيين عنوان العودة إلى الأصل لإخبار عقدة CDN بمكان الحصول على البيانات بعد إضافة الموقع الأصلي يمكنك حل DNS إلى عقدة CDN. (انقر للتكبير) عمليات أخرى: إذا كنت بحاجة إلى تسجيل Fikker كخدمة، فيرجى تنفيذ الأمر التالي:
#注册服务
./fikkerd.sh install
#停止服务
./fikkerd.sh stop
#删除服务
./fikkerd.sh uninstall

3. نظام CDN مدمج ذاتيًا

الخطوة الأولى: قم أولاً بتثبيت ذاكرة التخزين المؤقت لـ Fikker (يدعم أنظمة Linux/Windows). قم بتثبيت ذاكرة التخزين المؤقت Fikker على واحد أو أكثر من خوادم عقدة ذاكرة التخزين المؤقت لتسريع ذاكرة التخزين المؤقت/الوكيل العكسي، وما إلى ذلك. الخطوة 2: ثم قم بتثبيت عنصر التحكم الرئيسي لـ Fikker CDN. يستخدم لإدارة عقد ذاكرة التخزين المؤقت المتعددة ومزامنة إحصاءات حركة مرور التكوين/اسم المجال/إدارة المستخدم/إدارة الحزم لكل عقدة. ملاحظة: عنصر التثبيت الاختياري عندما يكون هناك عدد قليل من العقد، لا يلزم التحكم الرئيسي. (انقر للتكبير) الخطوة 3: أخيرًا، استخدم الدقة الذكية لجهة خارجية (مثل Cloudxns/DNSpod/51DNS/DNSla، وما إلى ذلك). استخدم دقة ذكية تابعة لجهة خارجية لحل اسم مجال موقع الويب لكل عنوان IP لخادم عقدة التخزين المؤقت بطريقة الاقتراع/المنطقة/الخط. ملاحظة: لا تحل إلى عنوان IP للتحكم الرئيسي.

4. ملخص

يمكن لـ Fikker CDN إنشاء خدمة CDN الخاصة بك بسهولة ويدعم HTTP/HTTPS، لكن Fikker يحتل 80/443، مما يجعل من المستحيل التعايش مع خدمة الويب الخاصة بك. إذا كنت لا تريد أن تزعج نفسك، فما عليك سوى استخدام 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)
%>

اترك رد