»ê¶õ

WSGI ¼­¹ö
Áö±Ý ´Ù¿î·Îµå

»ê¶õ ¼øÀ§ ¹× ¿ä¾à

±¤°í

  • Rating:
  • ƯÇã:
  • MIT/X Consortium Lic...
  • °¡°Ý:
  • FREE
  • °Ô½ÃÀÚ À̸§:
  • Donovan Preston
  • °Ô½ÃÀÚ À¥»çÀÌÆ®:
  • http://mac.com

»ê¶õ ű×


»ê¶õ ¼³¸í

WSGI ¼­¹ö SpawningÀº ¿©·¯ ½º·¹µå, ´ÙÁß ÇÁ·Î¼¼½º, ºñ Â÷´Ü HTTP I / O¸¦ Áö¿øÇÏ´Â WSGI ¼­¹öÀ̸ç Äڵ带 ÀÚµ¿À¸·Î Á¤»óÀûÀ¸·Î ¾÷±×·¹À̵åÇÕ´Ï´Ù. SpawningÀº ÇØÁ¦¸¦ »ç¿ëÇÏ¿© HTTP ¿äû ¹× ÀÀ´äÀ» À§ÇØ ºñ Â÷´Ü IO¸¦ ¼öÇàÇÕ´Ï´Ù. Áï, ¼­¹ö°¡ ¸¹Àº ¼ýÀÚÀÇ ¼ýÀÚÀÇ À¯Áö ¿¬°áÀ» ½±°Ô È®Àå ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. ±×·¯³ª ´Ù¸¥ ÇüÅÂÀÇ ´ÙÁß ÇÁ·Î¼¼½ÌÀ» »ç¿ëÇÏ¿© ¿äûÀ» À§ÀÓÇÏ¸ç ´Ù¾çÇÑ »óȲ¿¡¼­ À¯¿ëÇϵµ·Ï ±¸¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ThreadPool.Single ¶Ç´Â WSGI ÀÀ¿ë ÇÁ·Î±×·¥À» ¸Þ¸ð¸®¿¡ÀÖ´Â StateSif¸¦ ÀúÀåÇÏ´Â ¿©·¯ Python ÇÁ·Î¼¼½º»Ó¸¸ ¾Æ´Ï¶ó ¿©·¯ Python ÇÁ·Î¼¼½º¸¦ Áö¿øÇÕ´Ï´Ù. SpawningÀº ÇϳªÀÇ ÆÄÀ̽ã ÇÁ·Î¼¼½º ¸¸ ½ÇÇàµÇµµ·Ï ±¸¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±¸¼º¿¡¼­ ÀÀ¿ë ÇÁ·Î±×·¥ »óÅ°¡ ¸ðµç ¿äû¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ ÀÀ¿ë ÇÁ·Î±×·¥Àº ¿©·¯ ÇÁ·Î¼¼¼­¸¦ ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¿©·¯ ÇÁ·Î¼¼½º¸¦ »ç¿ëÇÏ¸é ¸ðµç ÇÁ·Î¼¼¼­¸¦ È°¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î WSGI ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ eventlet¿¡ ÀÇÇØ monkeApatched°¡ÀÖ´Â Â÷´Ü È£ÃâÀÇ Æ¯Á¤ ÇÏÀ§ ÁýÇÕÀ» ¼öÇàÇÏ´Â °æ¿ì state.single ¶Ç´Â ¿©·¯ ÀÛ¾÷ÀÚ ½º·¹µå (¶Ç´Â ÀÛ¾÷ÀÚ ÇÁ·Î¼¼½º)¸¦ °øÀ¯ÇÏÁö ¾Ê´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡ »ç¿ëÇؾßÇÕ´Ï´Ù. ¼ÒÄÏ ¸ðµâÀÇ ÀÛ¾÷ ´ë½Å Çù·Â (¿¹ : ¼ÒÄÏ ¸ðµâÀÇ ÀÛ¾÷)À» ±¸¼º ÇÒ ¼ö ÀÖÀ¸¹Ç·Î °¢ ÇÁ·Î¼¼½º¸¦ ±¸¼ºÇÏ¿© ´ÜÀÏ ¸ÞÀÎ ½º·¹µå ¸¸ ½ÇÇàÇÏ°í ´ë½Å Greenlet MicrothReads¸¦ »ç¿ëÇÏ¿© Çù·Â ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ¸Å¿ì ÀÛ°í Çý¼º ¼­¹ö ¶Ç´Â Ajax Æú¸µÀ» »ç¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥°ú °°Àº ¸¹Àº ¼öÀÇ µ¿½Ã ¿äûÀ¸·Î È®Àå ÇؾßÇÏ´Â °æ¿ì À¯¿ë ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ´ëºÎºÐÀÇ ±âÁ¸ WSGI ÀÀ¿ë ÇÁ·Î±×·¥Àº Â÷´Ü ÀÛ¾÷À» ¼öÇà ÇÒ ¼ö ÀÖ½À´Ï´Ù (¿¹ : Â÷´Ü ¼ÒÄÏ ÀÛ¾÷À» ¼öÇàÇÏ´Â µ¥ÀÌÅͺ£À̽º ¾î´ðÅÍ ¶óÀ̺귯¸® È£Ãâ). µû¶ó¼­ ´ëºÎºÐÀÇ WSGI ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ °æ¿ì ¿©·¯ ÇÁ·Î¼¼½º¿Í ¿©·¯ ½º·¹µåÀÇ Á¶ÇÕÀÌ ÀÌ»óÀûÀÔ´Ï´Ù. Graceful Code ReloadingBy ±âº»°ªÀº Sys.modules°¡ º¯°æÀ» À§ÇØ °¡Á®¿Â ¸ðµç Python ÆÄÀÏÀ» ½ÃûÇÏ°í º¯°æ »çÇ׿¡ Á¤»óÀûÀ¸·Î ´Ù½Ã·ÎµåÇÕ´Ï´Ù. ¿À·¡µÈ ÇÁ·Î¼¼½º´Â ¿äûÀ» ¼ö¶ôÇÏÁö ¾Ê°í ¼­ºñ½ºÁßÀΠŹ¿ùÇÑ ¿äûÀ» ¿Ï·áÇÏ°í Á¾·áÇؾßÇÕ´Ï´Ù. ÇÑÆí, »õ·Î¿î ÇÁ·Î¼¼½º°¡ ½ÃÀÛµÇ°í ¿äûÀ» ¼ö¶ôÇÏ°í »õ·Î¿î ÄÚµå·Î ¼­ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù. ¼­¹ö°¡ Reload¿¡¼­ Áö¼ÓÀûÀ¸·Î µè±â ¶§¹®¿¡ »çÀÌÆ® »ç¿ëÀÚ°¡ "¿¬°á °ÅºÎ"¿À·ù¸¦ º¼ ¼ö ¾øÀ¸¹Ç·Î "Spawn"½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ¿© ¸í·É ÁÙ¿¡¼­ WSGI ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÃÀÛÇϰųª Python ºÙ¿© ³Ö±â¸¦ »ç¿ëÇÏ¿© "¿¬°á °ÅºÎ"¿À·ù¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. ºÙ¿© ³Ö±â¿Í ÇÔ²² »ç¿ëÇÏ·Á¸é = °è¶õ : ºÙ¿© ³Ö±â ÆÄÀÏÀÇ ¼½¼ÇÀ» ÁöÁ¤ÇϽʽÿÀ. SpawningÀº -factory = spawning.django_factory.config_factory.examples ½ÇÇàÀ» »ç¿ëÇÏ¿© Django ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. SPAWNING : % spawn my_wsgi_module.my_wsgi_applicationÀº my_wsgi_module.py ÆÄÀÏ¿¡¼­ "my_wsgi_application"À̶ó´Â WSGI ÀÀ¿ë ÇÁ·Î±×·¥ È£ÃâÀ» ½ÇÇàÇÕ´Ï´Ù. % spawn --factory = spawning.paste_factory.config_factory development.inirun °³ development.iniÀÇ ³»ºÎ¿¡¼­ ±¸¼ºµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. Paster¸¦ »ç¿ëÇÏ¿© ÷´ÜÀ» »ç¿ëÇÏ¿© ¼­¹ö·Î ·¡ÇÎÀ» »ç¿ëÇϵµ·Ï ±¸¼ºµÈ INI ÆÄÀÏ·Î »ç¿ëÇÏ´Â °Í ¹Ìµé¿þ¾î. WSGI ÀÀ¿ë ÇÁ·Î±×·¥ À̸§ ÀÌÈÄ¿¡ ¿øÇϴ´ë·Î ¸¹Àº ¹Ìµé¿þ¾î ¹®ÀÚ¿­À» Àü´ÞÇϽʽÿÀ. % sudo spawn -port = 4 - processes = 4-Processes = 4-Processes = 4-Threads = 8 my_wsgi_module.my_wsgi_applicationrun Æ÷Æ® 80ÀÇ WSGI ÀÀ¿ë ÇÁ·Î±×·¥Àº °¢°¢ 4 °³ÀÇ ÇÁ·Î¼¼½º¸¦ »ç¿ëÇÏ¿© 4 °³ÀÇ Ã³¸® 8. % spawn - processes = 4 - threads = 0 my_wsgi_module.my_comet_applications eventlet monkeypatchingÀÌ ¼öÇàµÇ¾î¾ß ÇÔÀ» ³ªÅ¸³»´Â Å©±â 0ÀÇ threadPool ¹× WSGI ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ µ¿ÀÏÇÑ ½º·¹µå¿¡¼­ ¸ðµÎ È£ÃâµÇ¾î¾ß ÇÔÀ» ³ªÅ¸³À´Ï´Ù. ¸¹Àº ¿äûÀÌ ¼­¹ö Ãø À̺¥Æ® ¶Ç´Â ³»ºÎ ³×Æ®¿öÅ© IO¸¦ ¿Ï·áÇÏ´Â µ¥ ¸¹Àº ¿äûÀÌ °£´ÜÈ÷ ±â´Ù¸®°íÀÖ´Â Çý¼º ½ºÅ¸ÀÏ ÀÀ¿ë ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â µ¥ À¯¿ëÇÕ´Ï´Ù. ¿ä±¸ »çÇ× : ¡¤ ÆÄÀ̽ã


»ê¶õ °ü·Ã ¼ÒÇÁÆ®¿þ¾î

nspluginwrapper.

NSPLUGInwrapper´Â Netscape 4 ȣȯ Ç÷¯±×ÀÎÀ»À§ÇÑ ÇÁ·Ï½Ã Ç÷¯±×Àΰú ºä¾î·Î ±¸¼ºµË´Ï´Ù. ...

130

´Ù¿î·Îµå

ice.adverlet.

ICE.AdverletÀº Zope3 ±â¹Ý »çÀÌÆ® ¿ë ÆÐÅ°ÁöÀÔ´Ï´Ù. HTML ½º ´ÏÆêÀ» ÆíÁýÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ...

147

´Ù¿î·Îµå

Cyberneko HTML Æļ­

ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·Î±×·¡¸Ó°¡ HTML ¹®¼­¸¦ ±¸¹® ºÐ¼® ÇÒ ¼öÀÖ´Â °£´ÜÇÑ HTML ½ºÄ³³Ê ¹× ÅÂ±× ¹ë·±¼­ÀÔ´Ï´Ù. ...

189

´Ù¿î·Îµå