کلودفلر ( Cloudflare ) یک سرویس امنیتی و بهینه سازی وب سایت است که بیش از 12% وب سایت ها در سراسر جهان ( بیش از 8 میلیون ) از آن استفاده می کنند.

یک کاربر وردپرسی در کمتر از چند دقیقه می تواند این سرویس ابری را به کمک افزونه به وب سایت خود اضافه کند و با افزایش سرعت و البته جذب ترافیک بیشتر کارآیی سایت را افزایش دهد.

افزودن کلاودفلیر می تواند تاثیر ربات و هکر های مخرب را کاهش دهد و سایت را از لحاظ امنیتی تضمین کند. در این مقاله می خواهیم در روش های مختلفی کلودفلر را به وردپرس اضافه کنیم، پس با آی وحید همراه باشید.

  • کلودفلر چیست
  • کلودفلر ( Cloudflare ) و شبکه تحویل محتوا ( DNS ) چه تفاوتی دارند
  • چگونه تنظیمات کلودفلر Cloudflare در وردپرس انجام دهیم
  • افزونه کلودفلر ( Cloudflare ) وردپرس
  • چگونه کلودفلر ( Cloudflare ) برای وردپرس شبکه تنظیم کنیم
  • چگونه قوانین صفحه برای وردپرس شبکه تنظیم کنیم

کلودفلر چیست؟

در واقع کلودفلرها تا حدودی شبیه شبکه تحویل محتوا CDN ها عمل می کند اما در اجرا و پیکر بندی ساده تر از CDNها هستند.

حال برای اینکه عملکرد کلودفلر را متوجه شویم نیاز است تا بدانیم در نبود آن سرور وب سایت چگونه عمل می کند.

وب سرور به صورت دائمی روشن و در حال پردازش صفحات و اطلاعات وب سایت است. زمانی که کاربری بر روی صفحه ای از سایت کلیک می کند، در خواست به سمت وب سرور ارسال می شود و تمامی اطلاعات از آنجا بارگذاری می شود.

حال هرچه این عملیات سریع تر انجام شود سایت با سرعت بیشتری بارگذاری می شود. معمولا چون اغلب وب سایت ها با کاهش سرعت بارگذاری مواجه می شوند، سرویس کلودفلر می تواند پاسخ به درخواست های کاربران را تسریع کند.

زمانی که کاربران در خواست های خود را به وب سایت ارسال می کنند، اول به سرور کلودفلر (Cloudflare) ضربه می زند ( یا درخواست جستجو را ارسال می کند ) و با آدرس IP وب سرور باز می گردد.

این شبکه قدرتمند مجموعه ای از سرورهاست که در چند نقطه از جهان وجود دارند و با هم در ارتباط اند. وقتی سایتی از کلودفلر استفاده می کند، اطلاعات سایت به صورت بهینه در این شبکه ذخیره می شود.

هر درخواستی که به طرف سایت ارسال می شود از فیلتر کلودفلر عبور می کند و اگر ربات یا هکری قصد خراب کاری در سایت شما را داشته باشد توسط فایروال های این سرویس شناسایی و مسدود می شود.

کلودفلر ( Cloudflare ) و شبکه تحویل محتوا ( DNS ) چه تفاوتی دارند

کلودفلر سریع ترین DNS در وب است و محبوب ترین خدمات شبکه تحویل محتوا را انجام می دهد.

تفاوت کلی بین کلودفلر و شبکه تحویل محتوا ( DNS ) در ویژگی های امنیتی و عملکرد های اضافی کلودفلر است. به زبان ساده DNS فقط یک عملکرد راه حل ارائه می کند. اما کلودفلر می تواند به غیر از سیستم DNS ، یک لایه پروکسی اختیاری مانند فایوال ، CDN و غیره ارائه کند.

چگونه تنظیمات کلودفلر ( Cloudflare ) در وردپرس انجام می شود

کلودفلر مزایای امنیتی و عملکردی متنوعی دارد. اما همه آن ها با وردپرس کاملا سازگار نیستند. پس باید در تنظیمات کلودفلر خود بهترین ویژگی ها را برای سایت وردپرسی در نظر بگیریم.

ابزار تنظیم گواهی SSL

کلودفلر از سه حالت کدنویسی SSL / TLS خاموش ( Off )، انعطاف پذیر ( Flexible ) و کامل ( Full ) پشتیبانی می کند.

حالت OFF

در صورتی که نمی خواهید گواهی SSL فعال باشد، بازدیدکنندگان می توانند صفحات را با HTTP مشاهده کنند.

حالت Flexible

اتصال امن HTTPS بازدیدکننده و کلودفلر را فراهم می کند ولی کلودفلر را مجبور می کند تا به سرور اصلی بدون رمزگذاری وصل شود.

حالت Full

در این حالت کدگذاری با ارتباط کامل و مستقیمی بین بازدیدکننده و دامنه کلودفلر ، همچنین بین کلودفلر و سرور وب برقرار می شود واجازه می دهد تا از کلودفلر یک اتصال مطمئن به سرور اصلی داشته باشید.

گزینه Full SSL در اصل اعتبار ندارد و برای آن باید یکی از سه گزینه Strict ، ( Certificate Authority ) CA و Self Signed انتخاب کنید.

در حالت ( Full Strict ) به شبکه کلودفلر دستور می دهد که همیشه با استفاده از رمزگذاری SSL / TLS ( HTTPS )  به سرور مبدا شما متصل می شود.

سایت های وردپرسی بهتر است کدگذاری SSL Let’s Encrypt SSL ایجاد کرده و از گزینه Full یا Full ( Strict ) در Cloudflare استفاده کنند. همچنین یک گواهی مبدا کلودفلر برای نصب روی سرور مبدا خود تولید کنید.

اگر سرور شما گواهی SSL رایگان ارائه نمی کند ، کلودفلر نصب یک گواهی مبدا را روی سرور فراهم می کند و امکان می دهد تا از حالت Full ( Strict ) استفاده کنید.

در صورتی که از دامنه Root استفاده می کنید گواهی Flexible SSl کلودفلر را انتخاب کنید، تا بتوانید از یک قانون صفحه کلودفلر استفاده کنید و ویژگی SSL Full را برای زیر دامنه هاست فعال کنید.

ابزار فعال سازی HTTPS آدرس وب سایت

مورد دیگری که می توانید در کلودفلر گزینه آن را فعال کنید درخواست تبدیل خودکار HTTP به HTTPS است.

HSTS

HSTS مخفف HTTP Strict Transport Security است و در مرور برای اتصال امن HTTPS استفاده می شود. توصیه می شود که HSTS در کلودفلر فعال کنید تا درخواست های HTTP هرگز به سرور مبدا ( بدون اتصال امن ) نرود. حتی اگر قبلا تنظیم استفاده از HTTPS را انجام دادید بهتر است HSTS را هم فعال کنید.

ابزار تنظیم نسخه Minimum TLS

TLS یک پروتکل رمزنگاری است که امکان انتقال داده های ایمن را از طریق شبکه فراهم می کند و به صورت پیش فرض در کلودفلر نصب می شود. برخی از استانداردهای امنیتی مانند PCI DSS 3.2 نسخه هایی از TLS را برای اهداف تطبیق درخواست های خود را انتقال می دهد و نسخه TLS 1.2 امنیت بیشتری را تضمین می کند.

اگر فکر می کنید که وب سایت شما به این تنظیمات نیاز دارد باید مسیر ( SSL/TLS > Edge Certificates > Minimum TLS Version ) را طی کنید و شخصی سازی آن را برای خود انجام دهید.

ابزار تنظیمات سرعت کلودفلر

اکثر تنظیمات کلودفلر مربوط به عملکردهایی چون بهینه سازی تصاویر و موارد ضروری در تب Speed مربوط می شود و کمک می کند تا وب سایت با سرعت بالاتری آپلود شوند.

ابزار Polish

پولیش کلودفلر ( Cloudflare ) یک سرویس بهینه سازی تصویر است که به طور خودکار فشرده سازی JPG ، PNG ، GIF و سایر تصاویر را انجام می دهد. تصاویر در بخشی از کلودفلر پردازش می شود و در هاست سرور وب سایت تاثیری نمی گذارد.

پولیش از قالب های WEBP Google پشتیبانی می کند و به طور خودکار در مرورگرهای مختلف این قالب ها را ارائه می کند.

البته اگر تصاویر خود را در پولیش بهینه سازی کنید مصرف CPU سرور شما را به طرز چشمگیری کاهش می یابد و به تجربه پایدار و بهتری برای بازدیدکنندگان تبدیل می شود. دیگر نیازی به استفاده از فضای دیسک برای ذخیره نسخه های WEBP تصاویر نخواهد داشت.

ابزار Brotli

براتلی جایگزین خوبی بجای استفاده از Gzip در وردپرس است. براتلی به نسبت بیشتری فشرده سازی را انجام می دهد والگوریتمی برای کاهش اندازه فایل در خواست های وب قبل از نمایش دارد.

این امر باعث می شود صفحات سریع تر لود شوند و بهینه سازی سایت انجام شود. تنها نکته ای که نباید فراموش کنید فعال سازی ویژگی Brotli Cloudflare است تا همه مرورگرها بتوانند از این ویژگی پشتیبانی کنند. ( این احتمال وجود دارد که نسخه های پشتیبانی نشده به حالت Gzip برگردند )

ابزار Mirage

ابزار میراژ یک ویژگی بهینه سازی تصویر است که موبایل و اتصال پهنای باند کم را هدف قرار می دهد. با فعال شدن میراژ زمانی که تصاویر خود را آپلود می کنید کل تصویر با متغیر های با وضوح پایین جایگزین می شوند و بعد از آپلود تصویر با وضوح بالایی بارگذاری می شود.

البته در این ابزار می توانید چندین تصویر را همزمان درخواست دهید تا استفاده از ابزار های مختلف را در یک صفحه کاهش دهید. اگر در وب سایتی که دارید از تصاویر زیادی استفاده می کنند Cloudflare Mirage می تواند تاثیر مثبتی بر عملکرد داشته باشد.

ابزار Rocket Loader

ویژگی های این ابزار کمک می کند تا بتوانید کدهای جاوا اسکریپت خود را به طور غیرهمزمان آپلود کنید و سرعت لود سایت را افزایش دهید.

ابزار Caching

کلودفلر به صورت پیش فرض کدهای استاتیک JS ، CSS و فایل های تصویر را ( به غیر از کدهای HTML ) ذخیره می کند تا دسترسی به آن ها سریع تر شود و پهنای باند سرور را کاهش یابد.

کلودفلر نیازی به زیردامنه CDN یا هاست اضافی ندارد وبه همین خاطر به کمک ابزار Caching دستور می دهد تا محتوای حافظه کش سرور های CDN و فایل های HTML ، JavaScript و تصاویر را از طریق یک گزینه Cache All ذخیره کنید.

برای فعال سازی Caching فقط باید سطح حافظه کش ( Cashing Level ) را در سطح استاندارد قرار دهید تا امکان دسترسی نسخه های به روز شده را به رشته کوئری فراهم شود.

ابزار Firewall

فایروال برای محافظت از وردپرس در مقابل ترافیک مخرب عمل می کند. در صورتی که هاست شما فایروال را ارائه نمی دهد، می توانید به کمک کلودفلر یک فایروال اساسی را با پنج قانون سفارشی داشته باشید.

با تنظیم قوانین فایروال می توانید آدرس IP های خاص، روش درخواست ، ارجاع HTTP و حتی کشورها را مسدود کنید.

ابزار Pro Cloudflare دارای یک برنامه کاربردی وب قوی تر ( WAF ) است. WAF قوانین ویژه مدیریت شده ای ارائه می دهد تا محافظت از سایت شما بیشتر شود، به عنوان مثال قوانینی دارد تا سایت های وردپرس و PHP را مورد هدف قرار گیرند.

البته برای اکثر سایت ها سطح امنیتی توسط برنامه رایگان کلودفلر کافی است. اما با این حال اگر شما یک سایت فروشگاهی مهم داشته باشید WAF یک سطح حرفه ای امنیتی و مقررات مدیریت شده کلودفلر را ارائه می کند.

ابزار Network

در تنظیمات شبکه کلودفلر، توصیه می کنیم HTTP / 2 ، HTTP / 3 ( با QUIC ) و از سرگیری اتصال 0-RTT را فعال کنید.

HTTP / 2 از طریق موازی سازی و چند برابرسازی پیشرفت های HTTP / 1.1 را فراهم می شود. برای اتصالات امن HTTP / 3 از یک روال دستی بهینه استفاده می کند تا با سرعت بالایی کلودفلر به سرور های شما متصل شود.

ابزار Page Rules

ویژگی های کلودفلر امکان می دهد تا تنظیمات خاص URL های خود را انجام دهید. همچنین قوانین صفحه را برای فعال کردن حافظه کش انجام دهید، سطح امنیتی هر صفحه را تغییر دهید.

در Page Rules کلودفلر تنظیم Cache Everything محبوبیت بالایی در این بخش دارد ومی تواند موارد بسیاری را به صورت خودکار تنظیم کند.

ابزار تنظیم حافظه کش HTML به کمک Page Rule کلودفلر

کلودفلر یک تنظیم پیش فرض برای ذخیره حافظه پنهان HTML ندارد. تنظیم ( Cache HTML with a Cloudflare Page Rule ) کمک می کند بتوانید کش HTML خود را ذخیره کنید. با فعال شدن حافظه کش HTML صفحات با پسوند امن در دسترس قرار می گیرند و برای هر کاربری ( وارد یا خارج شدن از سایت ) قابل مشاهده می شود.

تنظیمات حافظه پنهان کلودفلر با اضافه کردن یک قانون صفحه کل سایت را پوشش می دهد و در سراسر شبکه منابع داده را ذخیره می کند.

توصیه می شود تنظیماتی که در کلودفلرانجام می دهید همه موارد کش را کاهش ندهید. به عنوان مثال بیشتر سایت هایی که صفحاتی استاتیک مثل Gatsby و Hugo ایجاد می کنند قابلیت های پویا ندارند و ذخیره کامل HTML صفحه اتفاق نمی افتد.

ابزار بایپس کردن حافظه کوکی ها

ابزارهای کلودفلر به افراد امکان می دهد تا قوانین صفحات خود را برای بایپس حافظه کوکی های خاص را تنظیم کنید. با انجام تنظیمات بایپس کلودفلر درخواست ای وارد شده ذخیره نمی شوند.

بنابراین می توانید از افزونه های woocommerce_items_in_cart و wp_woocommerce_session_ is usefu برای بایپس حافظه کش سایت های فروشگاهی استفاده کنید.

ابزار مشخص کردن هدرهای کنترل حافظه پنهان

راه دیگری که کمک می کند موارد انتخابی خود را بایپس کنید، استفاده از کدهای PHP است. برای انجام این مورد هم باید گزینه همه موارد حافظه کش page rule را فعال کنید.

با فعال شدن گزینه cache-control کلود فلر طبق هدرهای پاسخ از سمت سرور وب (Nginx) ، وردپرس و کدهای php عمل می کند. ( اگر تنظیم خاصی را در سرور ها داشته باشید کلود فلر آن ها را هم در نظر می گیرد، پس باید این گزینه نیز فعال باشد)

حال اگر بخواهید صفحات خاصی را در کلود فلر برای ذخیره خودکار انجام ندهید، می توانید موارد هدرهای ریسپانسیو (شخصی سازی شده)  را به فایل های قالب وردپرس خود اضافه کنید.

راه آخر استفاده از تنظیمات کش استفاده از آن ها در فانکشن های کد php است. پس می توانید این کد را برای کار در فولدر function.php نیز به کار بگیرید.

<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0," false);
header("Pragma: no-cache");
?>

اگر این کد را به قسمت اول فایل single.php اضافه کنید، کلودفلر پیام ها و صفحات جدا را ذخیره نمی کند. این کد می تواند در عبارات منطقی پیچیده شود تا در برخی شرایط دشوار استفاده شود.

به عنوان مثال استفاده از این کد با فانکشن is_user_logged_in () اطمینان می دهد تا کلودفلر صفحات را برای کاربران وارد شده ذخیره کنید.

به عنوان نمونه ما کد زیر را در فولدر header.php خود اضافه کردیم این کد HTTP زمانی که وارد سیستم می شوید هدرهای کنترل کش و پراگما را به همه صفحات اضافه می کند.

<?php
if ( is_user_logged_in() ) {
    	header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
	header("Cache-Control: post-check=0, pre-check=0", false);
	header("Pragma: no-cache");
}
?>

سرویس کلودفلر خود یک افزونه رسمی وردپرسی ارئه می کند که تنظیماتی برای بهینه سازی کلودفلر با وردپرس ، مقررات امنیتی خاص ، پاک کردن خودکار حافظه کش ، دکمه سرور HTTP/2 و موارد دیگر دارد.

البته سرور توصیه می کند که کاربران پیشرفته برای جلوگیری از قوانین پیچیده صفحات سفارشی این افزونه را نصب نکنند و تنظیمات را در داشبورد کلودفلر پیکر بندی کنند.

چگونه کلودفلر ( Cloudflare ) برای وردپرس شبکه تنظیم کنیم

اگر چند سایت را همزمان در وردپرس مدیریت می کنید وردپرس شبکه ( Multisite ) برای تنظیم کلودفلرآن باید موارد زیر را انجام دهید.

تنظیم SSL وردپرس شبکه

راه اندازی صحیح کلودفلر برای یک وردپرس شبکه ابتدا باید یک زیردامنه تستی را ایجاد کنیم تا در صورت استفاده از وردپرس شبکه با مشکلات SSL مواجه نشوید.

ساختار زیردامنه می تواند به شکل زیر باشد.

سایت اصلی : www.ivahid.com

زیرمجموعه 1 : site1.ivahid.com

زیر مجموعه 2 : site2.ivahid.com

به همین ترتیب دامنه ها در نوع  A دسته بندی شدند و در کلودفلر تنظیم شدند. کلودفلر در ستون وضعیت پروکسی با آیکون نارنجی نشان می دهد که پروکسی آن آدرس فعال است.

حال برای اینکه بتوانیم SSL آنها را فعال کنیم دو راه وجود دارد. اگر هاست از گواهی Letry Encrypt SSL پشتیبانی نمی کند باید یک گواهی ایجاد کنید تا دامنه های چندگانه شما را پوشش دهد.

برای ایجاد گواهی SSL وردپرس شبکه باید مسیر SSL/TLS > Origin Server را طی کنید و بر روی گزینه Create Certificate کلیک کنید تا ایجاد شود.

منوی تولید گواهی مبدا به سه بخش تقسیم می شود، کلودفلر یک کلید امنیتی فعال می کند و یک CSR ایجاد می کند مگر اینکه دلیل خاصی برای ارائه اطلاعات شخصی خود داشته باشید.

در قسمت دوم این صفحه دامنه هایی که باید گواهی SSL برای آن ها صادر شود را تایپ کنید. ( این دامنه ها باید در حساب کلودفلر شما باشند )

در قسمت سوم این صفحه اعتبار گواهی خود را انتخاب می کنید که به صورت پیش فرض 15 سال قرار دارد. بعد از اینکه گواهی SSL CSR خود را تنظیم کردید، می توانید از حالت ( Full strict ) کلودفلر استفاده کنید. گواهینامه SSL جدید تولید کنید که دامنه های اضافی را در برمی گیرد.

چگونه قوانین صفحه برای وردپرس شبکه تنظیم کنیم

اگر برای دامنه اصلی خود ویژگی هایی امنیتی و عملکرد کلودفلر را تنظیم کنید، زیردامنه های شما تحت دامنه اصلی اعمال می شود.

این ویژگی پیش فرض کلودفلر می تواند مشکلاتی را در شرایط خاص ایجاد کند. برای حل این مسئله می توانید از قوانین سفارشی صفحه برای غیرفعال کردن انتخابی ویژگی های زیردامنه ی خاص استفاده کنید.

به عنوان مثال برای دامنه site2.ivahid.com/ ، کوچک کردن خودکار HTML ، CSS و JS ، Rocket Loader و بایپس حافظه کش و بازنویسی خودکار HTTPS را غیرفعال کرده ایم.

اگر از برنامه رایگان کلودفلر استفاده می کنید فقط سه تنظیم برای سایت خود می توانید داشته باشید و برای داشتن گزینه های انتخابی بیشتر باید کلودفلر خود را به  PRO ارتقا دهید یا پرداخت فعال سازی گزینه های اضافی را انجام دهید.

پایان

استفاده از سیستم کلودفلر بر وردپرس شما تاثیر زیادی می گذارد. به کمک ابزارهای آن می توانید بسیاری از تنظیمات بهینه سازی انجام و سرعت وب سایت را افزایش دهید.

امیدواریم این مقاله بتواند برای شما مفید باشد و برخی از تنظیمات وردپرس را به کمک کلودفلر شخصی سازی کنید. در صورتی که نظر یا پیشنهادی دارید خوشحال می شویم در بخش نظرات برای ما درج کنید.