À̹ÌÁö ij½Ã ¼¹ö ±¸ÃàÇϱâ (³ª¸¸ÀÇ CloudFlare ±¸ÃàÇϱâ)
ÀÌ ±ÛÀÇ ¹æ¹ý´ë·Î ±¸ÃàÇÏ¿© ·±ÄªÇÑ ¡°Â©±×·¥¡± zzalgram ¿ò© ¾îÇø®ÄÉÀ̼ÇÀ» È«º¸Çغ¾´Ï´Ù! ¿ÏÀüºü¸¥ ¼Óµµ! ´ë¿ë·® Æ®·¡ÇÈ ¿ò© ¼ºñ½º!
(Á¦°¡ ¸¸µç ¾ÛÀº ¾Æ´Õ´Ï´Ù.)
¾Û ´Ù¿î·Îµå(¹«·á) : https://zzalgram.com/
ÀÌ ±Û¿¡¼´Â ³ª¸¸ÀÇ À̹ÌÁö ij½Ã ¼¹ö¸¦ ±¸ÃàÇÏ¿©, »çÀÌÆ® ¼Óµµ¸¦ ³ôÀÌ°í ºÎÇϸ¦ ÁÙÀÌ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
´ç½ÅÀÇ »çÀÌÆ®°¡ ÇØ¿Ü ¼¹ö¸¦ ÀÌ¿ë ÁßÀ̶ó¸é ÀÌ ¹æ¹ýÀ» ÅëÇØ ¾ÆÁÖ ³ôÀº ¼Óµµ Çâ»óÈ¿°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
CDN ij½Ã ¼ºñ½º ¾÷üÀÎ CloudFlare ¸¦ ¸ñÇ¥·Î »ï°í, ºñ½ÁÇÏ°Ô µ¿ÀÛÇϵµ·Ï ¸¸µé¾î º¸°Ú½À´Ï´Ù.
±¸Ãà ¹æ¹ý
ÇؿܸÁÀÌ ÁÁÀº ¼¹ö °í¸£±â.
2018³â ÇöÀç Çѱ¹¿¡¼ ÇؿܸÁÀÌ °¡Àå ÁÁÀº ¼¹ö´Â AWS ÀÔ´Ï´Ù.
AWS ÀÇ »óÇ° Áß¿¡¼ Àú°¡ÇüÀÎ Lightsail À» ÀÌ¿ëÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
°ø½Ä»çÀÌÆ® : https://lightsail.aws.amazon.com
¿î¿µÃ¼Á¦´Â Ubuntu 16.04 LTS ¶Ç´Â Ubuntu 18.04 LTS ¸¦ ¼±ÅÃÇϼ¼¿ä.
À̹ÌÁö ij½Ã ¼¹ö´Â CPU¿Í Memory¸¦ °ÅÀÇ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.
¿ÀÁ÷ ½ºÅ丮Áö ¿ë·®¸¸ °í·ÁÇÏ¿© ¼±ÅÃÇϼ¼¿ä. 5´Þ·¯ »óÇ° ¶Ç´Â 10´Þ·¯ »óÇ° ¼±ÅÃÇÏ½Ã¸é µË´Ï´Ù.
AWS Lightsail Àº ±âº»ÀûÀ¸·Î ¼¹ö¿¡ À¯µ¿IP ¸¦ ÇÒ´çÇϱ⠶§¹®¿¡, µû·Î °íÁ¤IP ¸¦ ¹ß±Þ¹Þ¾Æ ¿¬°áÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. Àû´çÈ÷ À¥»çÀÌÆ® ÄÜ¼Ö º¸°í ¿¬°áÇϼ¼¿ä.
ij½Ã ó¸®ÇÒ ÆÄÀÏ Á¾·ù °áÁ¤Çϱâ
CloudFlare ÀÇ °æ¿ì ´ÙÀ½ È®ÀåÀÚ¿¡ ´ëÇØ Ä³½Ã ó¸®ÇÕ´Ï´Ù.
ÇÏÁö¸¸ ¿ì¸®´Â À̹ÌÁö ij½Ã ¼¹ö¸¦ ¸¸µé °ÍÀ̱⠶§¹®¿¡ png, jpg, jpeg, gif ¸¸ ij½Ãó¸® ÇÒ °ÍÀÔ´Ï´Ù. ´õ ¸¹Àº È®ÀåÀÚ¸¦ ij½Ã󸮸¦ ÇÏ°í ½ÍÀ¸¸é ¿¹Á¦ÀÇ config.php ÆÄÀÏÀ» ¼öÁ¤Çؼ »ç¿ëÇϼ¼¿ä.
ij½Ã ÆÄÀÏÀÇ »ý¸íÁÖ±â Á¤Çϱâ
5Àϵ¿¾È »ç¿ëµÇÁö ¾ÊÀ¸¸é »èÁ¦µÇ°Ô Á¤ÇÔ.
À̹ÌÁö ij½Ã µµ¸ÞÀÎ Á¤Çϱâ
¿©·¯ºÐÀÌ ÀÚÁÖ°¡´Â ´ëÇü Ä¿¹Â´ÏƼ¸¦ º¸°í µû¶óÇÏ½Ã¸é µË´Ï´Ù.
ÀÌ ±ÛÀÇ ¿¹Á¦¿¡¼´Â À̹ÌÁöij½Ã µµ¸ÞÀÎÀ¸·Î img.lael.be ¸¦ »ç¿ëÇÏ°Ú½À´Ï´Ù.
À¥¼¹ö ±¸Ãà
ÀÏ¹Ý À¥¼¹ö¿Í µ¿ÀÏÇÏ°Ô ±¸ÃàÇÏ½Ã¸é µË´Ï´Ù.
Apache À¥¼¹ö ¶Ç´Â Nginx À¥¼¹ö¸¦ ±¸ÃàÇØÁÖ¼¼¿ä. (¾Æ¹«°Å³ª ÃëÇâ¿¡ ¸Â°Ô)
Ubuntu 16.04 + À¥¼¹ö ±¸Ãà¹æ¹ý (MySQL Àº ¼³Ä¡ÇÒ ÇÊ¿ä ¾øÀ½) https://blog.lael.be/post/73
Ubuntu 18.04 + À¥¼¹ö ±¸Ãà¹æ¹ý (MySQL Àº ¼³Ä¡ÇÒ ÇÊ¿ä ¾øÀ½) https://blog.lael.be/post/7264
¶Ç´Â ÀÏ¹Ý À¥È£½ºÆÿ¡¼µµ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
À̹ÌÁö ij½Ã »çÀÌÆ® ¼³Ä¡
À̹ÌÁö ij½Ã À¥»çÀÌÆ®¿¡ ´ÙÀ½ÀÇ ¼Ò½º Äڵ带 ³ÖÀ¸½Ã¸é µË´Ï´Ù.
¼Ò½º µÑ·¯º¸±â : https://github.com/laelbe/my-image-cdn/tree/master/www
´Ù¿î·Îµå : https://github.com/laelbe/my-image-cdn/archive/master.zip
- .htaccess ÆÄÀÏ
ºÒÆß ¹æÁö Äڵ带 ³Ö¾îµÎ¾ú½À´Ï´Ù. ÀûÀýÇÏ°Ô ¼öÁ¤Çϼ¼¿ä.
- invalid_referer.png ÆÄÀÏ
À̹ÌÁö ¸µÅ© »ç¿ëÀ» Çã¿ëÇÑ µµ¸ÞÀÎÀÌ ¾Æ´Ò °æ¿ì ÀÌ À̹ÌÁö°¡ ´ë½Å Ç¥½ÃµÊ. (¿¹Á¦¿¡¼´Â Åõ¸íÀ̹ÌÁö·Î ¼³Á¤)
- config.php ÆÄÀÏ
$original_host , $allowed_extension ºÎºÐÀ» ÀûÀýÇÏ°Ô ¼öÁ¤Çϼ¼¿ä.
- NGINX »ç¿ëÀÚÀÇ °æ¿ì .htaccess ÆÄÀÏÀÌ µ¿ÀÛÇÏÁö ¾ÊÀ¸´Ï .htaccess ÆÄÀÏ º¯°æ ´ë½Å ´ÙÀ½ÀÇ ¼³Á¤À» Àû¿ëÇϼ¼¿ä.
https://blog.lael.be/demo-generator/imagecdn/my-example-site.com.php
ÀÏÁ¤½Ã°£ÀÌ Áö³ ij½ÃÆÄÀÏ »èÁ¦Çϱâ
¹Ýº¹ ½ÇÇà µî·Ï (crontab µî·Ï)
# crontab -e
¸ÅÀÏ »õº® 4½Ã 10ºÐ¿¡ »èÁ¦ ¸í·ÉÀÌ ½ÇÇàµÇµµ·Ï ¼³Á¤. (ÀϹÝÀûÀ¸·Î »õº® 4½Ã¿¡ »ç¿ëÀÚ°¡ ÀûÀ½.)
ÆĶõ»ö ºÎºÐÀ» ¼öÁ¤ÇØ ÁÖ¼¼¿ä.
10 4 * * * /usr/bin/find /home/imagecdn/www -mindepth 2 -atime +5 -type f \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.gif \) | xargs rm 1>/dev/null 2>/dev/null
* ¿É¼Ç ¼³¸í
-mindepth 2 : ÃÖ»óÀ§ Æú´õ´Â »èÁ¦´ë»ó¿¡¼ Á¦¿Ü.
-atime +5 : ÃÖÁ¾ access ÇÑÁö 5ÀÏÀÌ Áö³µÀ» °æ¿ì.
-type f : ÆÄÀϸ¸ °Ë»ö
-iname ÆÄÀϸí : Á¶°Ç ÆÄÀÏ¸í °Ë»ö
-o : OR (Á¶°Ç¹® OR)
1>/dev/null : ¸í·É¾îÀÇ µ¿ÀÛ Ãâ·ÂÀÌ ÀÖÀ» °æ¿ì ȸé Ç¥½ÃÇÏÁö ¾ÊÀ½
2>/dev/null : ¸í·É¾îÀÇ ¿À·ù Ãâ·ÂÀÌ ÀÖÀ» °æ¿ì ȸé Ç¥½ÃÇÏÁö ¾ÊÀ½
¿î¿µ ÁßÀÎ À¥»çÀÌÆ®¿¡¼ À̹ÌÁö ¸µÅ© ¼öÁ¤
¿¹¸¦ µé¾î https://blog.lael.be/wp-content/uploads/2018/10/s2.png ¸µÅ©°¡ ÀÖ´Ù¸é
https://img.lael.be/wp-content/uploads/2018/10/s2.png ·Î º¯°æÇÕ´Ï´Ù.
Ãâ·ÂÄڵ忡 PHP ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ġȯÇϰųª, CDN °ü·Ã Ç÷¯±×ÀÎ »ç¿ë, µðÀÚÀÎ ½ºÅ²ÆÄÀÏ º¯°æ, ¶Ç´Â Á÷Á¢ DB¸¦ ¼öÁ¤ÇÏ¿© À̹ÌÁö °æ·Î¸¦ º¯°æÇÏ¸é µË´Ï´Ù.
Á¤»ó µ¿ÀÛ È®ÀÎ
ij½Ã ÆÄÀÏÀÌ »ý¼ºµÈ °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
ij½Ã¿¡ ÀûÁß(HIT)Çß´ÂÁö ÀûÁß ¾ÈÇß´ÂÁö(MISS) ¸Ó¸® ¼ÓÀ¸·Î µ¿ÀÛÀ» ±×·Áº¸¼¼¿ä.
CloudFlareÀÇ ÀÌ°Í°ú °°Àº µ¿ÀÛÀÌ ÀÌ·ç¾îÁö°í ÀÖ´Ù°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.
¶ÇÇÑ, CloudFlareÀÇ µ¿ÀÛ°ú °°ÀÌ ¼¹ö¸í, ij½Ã ÀûÁß À¯¹«¸¦ Çì´õ¿¡ Ç¥½ÃÇÏ°Ô Àû¿ëÇØ µÎ¾ú½À´Ï´Ù.
< CloudFlare ÀÇ ÀÀ´äÇì´õ ¿¹½Ã >
< º»¹® ¼Ò½º ÄÚµåÀÇ ÀÀ´äÇì´õ ¿¹½Ã >
°á·Ð
³ª¸¸ÀÇ (À̹ÌÁö) ij½Ã ¼¹ö°¡ ±¸ÃàµÇ¾ú½À´Ï´Ù!
root »ç¿ëÀÚ ±ÇÇÑÀ¸·Î ´ÙÀ½ ¸í·É¾î¸¦ ½ÇÇàÇÏ½Ã¸é ½Ç½Ã°£ µ¿ÀÛ »óŸ¦ º¼ ¼ö ÀÖ½À´Ï´Ù! (Á¾·á¹æ¹ý : ÄÁÆ®·Ñ c)
# tail -f /var/log/apache2/img.lael.be-access.log
DNS ¶ó¿îµå·ÎºóÀ» ÅëÇØ ´Ù¼öÀÇ Ä³½Ã ¼¹ö¸¦ µÎ¸é, ºÎÇÏ°¡ ´õ¿í ºÐ»êµË´Ï´Ù. ÇÏÁö¸¸ Çϳª¸¸ µÎ¾îµµ ÃæºÐÇÑ ±â´ë È¿°ú°¡ ³ª¿É´Ï´Ù.