ÃֽŠ°Ô½Ã±Û(OS/WAS)
2020.02.17 / 11:29

À̹ÌÁö ij½Ã ¼­¹ö ±¸ÃàÇϱâ (³ª¸¸ÀÇ CloudFlare ±¸ÃàÇϱâ)

Äڷγª
Ãßõ ¼ö 238



ÀÌ ±ÛÀÇ ¹æ¹ý´ë·Î ±¸ÃàÇÏ¿© ·±ÄªÇÑ ¡°Â©±×·¥¡± 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 ¶ó¿îµå·ÎºóÀ» ÅëÇØ ´Ù¼öÀÇ Ä³½Ã ¼­¹ö¸¦ µÎ¸é, ºÎÇÏ°¡ ´õ¿í ºÐ»êµË´Ï´Ù. ÇÏÁö¸¸ Çϳª¸¸ µÎ¾îµµ ÃæºÐÇÑ ±â´ë È¿°ú°¡ ³ª¿É´Ï´Ù.