PHP: อะไรคือข้อดีของ FastCGI บน mod_php


30

เมื่อเร็ว ๆ นี้มีข้อเสนอแนะให้ฉันว่าฉันใช้ FastCGI กับ PHP ตอนนี้ฉันไปที่หน้า FastCGI และอ่าน แต่ฉันไม่เข้าใจจริงๆว่าข้อดีคืออะไร

คำตอบ:


37

การใช้ mod_php ผู้ปฏิบัติงาน Apache แต่ละคนมีล่าม PHP ทั้งหมดโหลดไว้ เนื่องจาก Apache ต้องการหนึ่งกระบวนการของผู้ปฏิบัติงานต่อการร้องขอที่เข้ามาคุณสามารถจบลงด้วยการใช้งาน Apache หลายร้อยคนโดยแต่ละคนมีล่าม PHP ของตัวเองโหลดไว้จำนวนมากใช้หน่วยความจำจำนวนมาก

(โปรดทราบว่านี่ไม่เป็นความจริง แต่อย่างใด Apache ของworker_mpmอนุญาตให้คุณให้บริการหลายคำขอกับผู้ปฏิบัติงาน Apache เธรดเดียวอย่างไรก็ตามแม้ในปี 2009 นี่ไม่ใช่วิธีที่แนะนำในการปรับใช้ PHP เนื่องจากสงสัยว่ามีปัญหาเธรดกับส่วนขยาย PHP)

โดยใช้ PHP ในโหมด fast_cgi (การใช้บางอย่างเช่นspawn-fcgiจากแพ็คเกจ lighttpd) มีข้อดีดังต่อไปนี้

  • ปรับจำนวนคนทำงาน PHP แยกจากจำนวนการเชื่อมต่อที่เข้ามา
  • อนุญาตให้คุณทำให้คนทำงาน PHP ของคุณบนเซิร์ฟเวอร์ที่แตกต่างกันหรือขนาดข้ามเซิร์ฟเวอร์จำนวนมากโดยไม่ต้องเปลี่ยนชั้นเว็บของคุณ
  • ช่วยให้คุณมีความยืดหยุ่นในการเลือกเว็บเซิร์ฟเวอร์อื่นเช่นnginxหรือlighttpd
  • อนุญาตให้คุณเรียกใช้แอปพลิเคชัน PHP ของคุณในโดเมนความปลอดภัยอื่นบนเว็บเซิร์ฟเวอร์ของคุณ

5

FastCGI หมายความว่าบิต php ไม่ได้ทำงานในกระบวนการเดียวกันกับบิต apache ซึ่งแตกต่างจาก mod_php การแยกนี้อาจมีข้อได้เปรียบที่แน่นอนเมื่อพูดถึงการรีสตาร์ทเซิร์ฟเวอร์หรือจัดการกับแอปพลิเคชันที่ไม่ทำงาน - ในกรณี mod_php ซึ่งหมายความว่ามันเป็นกระบวนการอาปาเช่ที่ "หนี" แต่ภายใต้ fastcgi เป็นเพียงกระบวนการที่อาปาเช่กำลังพูดถึง เซิร์ฟเวอร์ทั้งหมดไม่จำเป็นต้องถูกลบออก


4

ข้อดีอีกอย่างที่ยังไม่ได้กล่าวถึงคือความจริงที่ว่าด้วยmod_fcgid(ซึ่งเป็นการนำมาใช้ใหม่สำหรับการใช้ FastCGI บน Apache) และ suexec คุณสามารถตระหนักถึงการตั้งค่าที่ vhosts ที่แตกต่างกันใช้ผู้ใช้ Linux ที่แตกต่างกัน .

ด้วย mod_php, vhosts ทั้งหมดจะแชร์ผู้ใช้คนเดียวกันซึ่งก็คือผู้ใช้ของ Apache ซึ่งอาจนำไปสู่ปัญหาด้านความปลอดภัย


ขึ้นอยู่กับ MPM ที่ใช้ในการติดตั้ง Apache httpd นี้โดยเฉพาะ ตัวอย่างเช่นกับ MPM-itk ( mpm-itk.sesse.net ) เป็นไปได้ที่จะใช้ mod_php และมีสคริปต์ (หรือดีกว่า: กระบวนการ httpd) ที่กำลังทำงานอยู่ในบริบทของผู้ใช้รายอื่น
joschi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.