Alternatif untuk Apache

15

Tumpukan kami saat ini adalah Apache + Tomcat + MySQL, menggunakan ProxyPassAJP untuk memecat permintaan dari Apache ke Tomcat. Kami juga menjalankan PHP untuk Wordpress di situs yang sama, dan karenanya perlu .htaccessfile yang berfungsi . Menanggapi masalah yang mengganggu (lihat halaman Stack Overflow ini) , kami mempertimbangkan tumpukan alternatif. Perhatikan bahwa secara umum kami sangat menyukai apache, tetapi masalah ini adalah penghenti acara: jika kami tidak dapat memperbaikinya, kami tidak dapat menggunakan Apache.

Alternatif termasuk:

  • Tomcat sendiri
  • Glassfish (server aplikasi Java, bercabang dari Tomcat)
  • Jetty (server Java)
  • Damar
  • LightTPD (server HTTP ringan)
  • Nginx (server HTTP ringan)

Menurut saya, solusinya terbagi dalam dua kubu: kubu Jawa murni, seperti Glassfish; atau split camp seperti Apache + Tomcat kami saat ini. Kami menyukai ide solusi Java murni, karena lebih sedikit bagian yang bergerak berarti lebih sedikit kesalahan; tetapi apakah ada di antara mereka yang mendukung PHP, .htaccessfile, dll?

Secara teori kita bisa melakukan pemisahan dengan cara lain - memiliki front end sederhana yang proksi ke Apache hanya pada bit yang membutuhkan fitur tersebut - tetapi dalam praktiknya itu akan menjadi 80% dari permintaan.

Opsi apa yang disarankan orang?

Marcus Downing
sumber
Maukah Anda menguraikan "masalah show-stopper" Anda yang menyebalkan itu sedikit lebih banyak, atau apakah itu sama sekali tidak relevan?
tandai
Ikuti tautan ke halaman StackOverflow untuk lebih jelasnya. Ini adalah bug di mana klien mendapatkan respons yang salah - terkadang mendapatkan file JS atau CSS alih-alih yang HTML, atau hanya halaman yang salah sepenuhnya. Kami telah mencoba hampir semua yang ada dalam Apache dan Tomcat yang dapat kami pikirkan.
Marcus Downing

Jawaban:

7

Saya sangat curiga masalah Anda terkait dengan AJP.

Saya mengikuti kursus dengan salah satu pengembang Tomcat utama beberapa minggu yang lalu (dia menjalankannya), sarannya adalah untuk menghindari AJP dan mod-JK dll, dan tetap menggunakan mod-proxy HTTP biasa.

Alasan:

  1. Ini adalah konektor Tomcat yang paling matang dan stabil.
  2. Implementasi AJP tidak dikembangkan secara konsisten; kedua proyek telah mengalami sedikit berhenti / mulai.
  3. NBIO tidak menghasilkan keuntungan kinerja dunia nyata atas pemblokiran-IO, dalam situasi ini.

Saran saya, coba gunakan mod-proxy HTTP biasa dengan pengaturan Anda saat ini. Ini adalah perubahan paling tidak untuk Anda dan itu akan membawa Anda ke arsitektur penyebaran Tomcat yang paling banyak digunakan dan stabil.

/ Richy


sumber
Saya kira saya bisa mencobanya. Apakah Anda memiliki angka yang sulit tentang perbedaan kinerja?
Marcus Downing
Bagaimana saya bisa menggunakan mod-proxy reguler dan masih mendapatkan nama host yang benar yang masuk ke Tomcat? Saya cukup yakin mereka semua diterima sebagai localhost saat ini.
Marcus Downing
2
ProxyPreserveHost On mungkin adalah yang Anda cari. httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypreservehost
Stephen Veiss
5

Tumpukan pilihan saya saat ini adalah menggunakan nginx sebagai pengganti Apache. Di mana pun diperlukan, php-fpm memenuhi kebutuhan akan PHP. Pengaturan seperti itu telah bekerja dengan baik untuk menyebarkan aplikasi seperti Rails, Magento dan SugarCRM.

Jauder Ho
sumber
4

Glassfish akan lebih terukur daripada Tomcat karena menggunakan Grizzly (berbasis NIO). Anda tidak memiliki banyak pilihan selain variasi Tomcat, Jetty, atau Glassfish karena persyaratan Java. PHP dapat dijalankan menggunakan Quercus , tetapi mungkin lebih baik hanya menggunakannya menggunakan Nginx.

Joshua
sumber
2

Ada implementasi PHP di Jawa, yang saya tahu (tapi belum pernah digunakan) adalah yang ini . Ada posting blog tentang cara menginstalnya di GlassFish (termasuk WordPress), tapi saya kira instalasi di tomcat sama. Mengenai .htaccess, Anda belum menulis apa yang sebenarnya Anda miliki di sana, tetapi jika itu adalah untuk penulisan ulang URL maka ada UrlRewriteFilter yang melakukan pekerjaan yang sama dengan semantik yang sama.

David Rabinowitz
sumber
File .htaccess sebagian besar dihasilkan oleh WordPress, sehingga mengandung beberapa RewriteRules sederhana
Marcus Downing
Saya kira PHP tidak akan mendukung mereka, tetapi seharusnya tidak sulit untuk memiliki proses yang membacanya dan meneruskan definisi ke filter.
David Rabinowitz