ทางเลือกใน Apache


15

สแต็คปัจจุบันของเราคือ Apache + Tomcat + MySQL โดยใช้ProxyPassAJP เพื่อดำเนินการตามคำขอจาก Apache ไปยัง Tomcat นอกจากนี้เรายังเรียกใช้ PHP สำหรับ Wordpress ในเว็บไซต์เดียวกันและต้องการ.htaccessไฟล์ทำงาน ในการตอบสนองต่อปัญหาที่น่ารำคาญ (ดูหน้าสแต็คโอเวอร์โฟลว์)เรากำลังพิจารณาสแต็คทางเลือก โปรดทราบว่าโดยทั่วไปเราชอบ Apache แต่ปัญหานี้เป็น show-stopper: หากเราไม่สามารถแก้ไขได้เราจะใช้ Apache ไม่ได้

ทางเลือก ได้แก่ :

  • โพงตัวเดียว
  • Glassfish (เซิร์ฟเวอร์แอป Java แยกจาก Tomcat)
  • ท่าเทียบเรือ (เซิร์ฟเวอร์ Java)
  • ยาง
  • LightTPD (เซิร์ฟเวอร์ HTTP น้ำหนักเบา)
  • Nginx (เซิร์ฟเวอร์ HTTP น้ำหนักเบา)

วิธีที่ฉันเห็นวิธีแก้ปัญหาตกอยู่ในสองค่าย: ค่าย Java ล้วนเช่น Glassfish; หรือค่ายแยกเช่น Apache + Tomcat ปัจจุบันของเรา เราชอบแนวคิดของโซลูชัน Java ที่บริสุทธิ์เนื่องจากชิ้นส่วนที่เคลื่อนไหวน้อยลงควรมีความผิดพลาดน้อยลง แต่พวกเขาสนับสนุน PHP, .htaccessไฟล์, และอื่น ๆ ?

ในทางทฤษฎีเราสามารถแยกอีกวิธีหนึ่ง - มีส่วนหน้าแบบง่ายที่พร็อกซีไปยัง Apache ในบิตเหล่านั้นเท่านั้นที่จำเป็นต้องใช้คุณสมบัติเหล่านั้น - แต่ในทางปฏิบัติที่จะเป็น 80% ของการร้องขอ

ผู้คนแนะนำตัวเลือกอะไร?


คุณจะช่วยอธิบายเพิ่มเติมเกี่ยวกับ "ปัญหาการแสดงจุก - น่ารำคาญ" ของคุณอีกเล็กน้อยหรือมันไม่เกี่ยวข้องอย่างสมบูรณ์?
ทำเครื่องหมาย

ไปที่ลิงก์ไปยังหน้า StackOverflow สำหรับรายละเอียดเพิ่มเติม มันเป็นข้อผิดพลาดที่ลูกค้าส่งมอบการตอบสนองที่ผิด - บางครั้งรับไฟล์ JS หรือ CSS แทนที่จะเป็นไฟล์ HTML หรือหน้าผิดทั้งหมด เราได้ลองทุกอย่างภายใน Apache และ Tomcat ที่เราสามารถคิดได้
Marcus Downing

คำตอบ:


7

ฉันสงสัยอย่างยิ่งว่าปัญหาของคุณเกี่ยวข้องกับ AJP

ฉันอยู่ในหลักสูตรกับหนึ่งในนักพัฒนา Tomcat หลักเมื่อไม่กี่สัปดาห์ที่ผ่านมา (เขากำลังใช้งานอยู่) คำแนะนำของเขาคือหลีกเลี่ยง AJP และ mod-JK ฯลฯ และติดกับ HTTP-mod HTTP proxy ปกติ

เหตุผล:

  1. มันเป็นขั้วต่อ Tomcat ที่โตเต็มที่และเสถียรที่สุด
  2. การใช้ AJP ไม่ได้รับการพัฒนาอย่างต่อเนื่อง ทั้งสองโครงการประสบปัญหาหยุด / เริ่มต้นเล็กน้อย
  3. NBIO จะไม่ส่งผลให้ประสิทธิภาพการทำงานในโลกแห่งความเป็นจริงนั้นสูงกว่าการปิดกั้น IO ในสถานการณ์นี้

คำแนะนำของฉันลองใช้ mod-proxy HTTP ปกติกับการตั้งค่าปัจจุบันของคุณ มันเป็นการเปลี่ยนแปลงที่น้อยที่สุดสำหรับคุณและจะนำคุณไปสู่สถาปัตยกรรมการปรับใช้ Tomcat ที่ใช้กันอย่างแพร่หลายและมีเสถียรภาพมากที่สุด

/ ริชชี่


ฉันคิดว่าฉันสามารถไปได้ คุณมีตัวเลขที่ยากในความแตกต่างด้านประสิทธิภาพหรือไม่?
Marcus Downing

ฉันจะใช้ mod-proxy ปกติและยังคงได้รับชื่อโฮสต์ที่ถูกต้องมาถึง Tomcat ได้อย่างไร ฉันค่อนข้างแน่ใจว่าพวกเขาทั้งหมดได้รับเป็น localhost ในขณะนี้
Marcus Downing

2
ProxyPreserveHost On อาจเป็นสิ่งที่คุณกำลังมองหา httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypreservehost
Stephen Veiss

5

สแต็คที่ฉันต้องการในปัจจุบันคือการใช้ nginx เพื่อแทนที่สำหรับ Apache ทุกที่ที่จำเป็น php-fpm เติมเต็มในความต้องการ PHP การตั้งค่าดังกล่าวทำงานได้ดีสำหรับการปรับใช้แอพเช่น Rails, Magento และ SugarCRM


4

Glassfish จะปรับขนาดได้มากกว่า Tomcat เนื่องจากใช้ Grizzly (อิง NIO) คุณไม่มีตัวเลือกมากมายนอกเหนือจาก Tomcat, Jetty หรือ Glassfish เนื่องจากความต้องการของจาวา PHP สามารถใช้งานได้โดยใช้Quercusแต่มันอาจจะดีกว่าถ้าคุณปรับใช้โดยใช้ Nginx


2

มีการใช้งาน PHP บน Java เป็นหนึ่งฉันรู้ ( แต่ไม่ได้ใช้) เป็นหนึ่งในนี้ มีโพสต์บล็อกเกี่ยวกับวิธีการติดตั้งบน GlassFish (รวมถึง WordPress) แต่ฉันเดาว่าการติดตั้งบน tomcat เหมือนกัน เกี่ยวกับ. htaccess คุณยังไม่ได้เขียนสิ่งที่คุณมี แต่ถ้าเป็นการเขียน URL ใหม่ก็จะมี UrlRewriteFilterที่ทำงานแบบเดียวกันกับซีแมนทิกส์เดียวกัน


ไฟล์. htaccess ส่วนใหญ่เป็นไฟล์ที่สร้างขึ้นโดย WordPress ดังนั้นจึงมี RewriteRules ง่าย ๆ อยู่บ้าง
Marcus Downing

ฉันเดาว่า PHP จะไม่สนับสนุนพวกเขา แต่มันก็ไม่ยากที่จะมีกระบวนการที่อ่านพวกเขาและส่งคำจำกัดความไปที่ตัวกรอง
David Rabinowitz

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.