โดยปกติถ้าเราติดตั้ง cloudflare และเปิด Security Level ไว้ในระดับสูง ( High ) ระบบ WAF ( Web Application Firewall ) ของ cloudflare จะทำการจำกัดการเข้าถึงที่ไม่ใช่การเข้าใช้งานปกติ เช่น การใช้คำสั่ง curl, wget เป็นต้น ซึ่งไม่ใช่การเข้าใช้งานเยี่ยมชมเว็บไซต์ปกติ
ถ้าเราต้องการทั้งเปิดใช้งานระบบความปลอดภัยของ cloudflare เต็มรูปแบบ แต่ก็ต้องการ allow บาง ip เพื่อใช้งานคำสั่งที่ซับซ้อนอย่าง cronjob เราสามารถตั้งค่า IP Access Rules ของเครื่อง server บน cloundflare ได้ โดยมีวิธีตั้งค่าตามนี้ครับ
การทดสอบว่าถูกบล็อคโดย Cloudflare
ใช้คำสั่ง wget หรือ curl กับลิงค์ที่เราต้องการ cronjob เพื่อตรวจสอบว่า ข้อมูลที่ได้กลับมาเป็นหน้าตาเว็บไซต์ หรือ เป็นข้อมูล Managed challenges ของ cloudflare ถ้าเป็นข้อมูลจาก cloudflare แสดงว่าเว็บไซต์ถูกจำกัดโดยระบบ WAF ให้ไปในขั้นตอนต่อไปคือ ตั้งค่า IP Access Rules
วิธีตั้งค่า IP Access Rules
- เข้าสู่ระบบของ Cloudflare และเลือกเว็บไซต์ที่เราต้องการตั้งค่า
- ไปที่เมนู Security -> WAF -> Tools
- หา ip address ของเครื่อง server อาจจะสอบถามไปยังผู้ให้บริการ หรือ ใช้เครื่องมือออนไลน์ หรือถ้าเป็น vps ก็สามารถใช้คำสั่ง ip a หรือสำหรับ window server ใช้คำสั่ง ipconfig เพื่อหา ip address เครื่อง server
- ในช่อง P, IP range, country name, or ASN ให้ใส่ ip address ของ server
- ในช่อง Action ให้เลือกเป็น Allow
- ในช่อง Zone ให้เลือกเป็น This Website ( อนุญาติเฉพาะ Cronjob จากเว็บไซต์โดเมนเดียวกับไอพี )
หลังจากตั้งค่าเรียบร้อยแล้ว ให้ทดสอบการทำงานของ cronjob อีกครั้งว่า สามารถทำงานได้ปกติดีหรือไม่