Альтернативи Apache


15

Наш поточний стек - Apache + Tomcat + MySQL, який використовує ProxyPassAJP для запуску запитів від Apache до Tomcat. Ми також запускаємо PHP для Wordpress на тих же сайтах, тому нам потрібні робочі .htaccessфайли. У відповідь на набридливу проблему (див. Цю сторінку переповнення стека) ми розглядаємо альтернативні стеки. Зауважте, що ми, як правило, дуже любимо apache, але ця проблема - це стоп-шоу: якщо ми не можемо це виправити, ми не можемо використовувати Apache.

Альтернативи включають:

  • Томат один
  • Glassfish (сервер додатків Java, роздвоєний від Tomcat)
  • Jetty (сервер Java)
  • Смола
  • LightTPD (легкий сервер HTTP)
  • Nginx (легкий сервер HTTP)

Як я це бачу, рішення потрапляють у два табори: чистий табір Java, наприклад, Glassfish; або розбитого табору, такого як наш нинішній Apache + Tomcat. Нам подобається ідея чистого рішення Java, оскільки менша кількість рухомих частин повинна означати менше помилятися; але чи підтримує будь-який з них PHP, .htaccessфайли тощо?

Теоретично ми могли б зробити спліт іншим способом - мати просту передню частину, що проксі-сервери до Apache лише для тих бітів, які потребують цих функцій - але на практиці це буде 80% запитів.

Які варіанти пропонують люди?


Ви б не хотіли детальніше розробити свою "дратівливу проблему з зупинкою шоу" чи це зовсім не має значення?
відмітка

Щоб отримати докладнішу інформацію, перейдіть за посиланням на сторінку StackOverflow. Це помилка, коли клієнти отримують неправильну відповідь - іноді отримують файли JS або CSS замість HTML-файлів або повністю неправильну сторінку. Ми майже все пробували в межах Apache та Tomcat, про що можна придумати.
Маркус Даунінг

Відповіді:


7

Я дуже підозрюю, що ваша проблема пов'язана з AJP.

Я був у курсі з одним з головних розробників Tomcat кілька тижнів тому (він працював з ним), його порада полягала в тому, щоб уникати AJP і mod-JK тощо, і дотримуватися звичайних мод-проксі HTTP.

Причини:

  1. Це далеко не самий зрілий і стабільний роз'єм Tomcat.
  2. Жодна реалізація AJP не розроблялася послідовно; обидва проекти зазнали трохи зупинки / початку.
  3. У цій ситуації NBIO не призводить до жодного реального збільшення продуктивності у порівнянні з блокуванням IO.

Моя порада, спробуйте використовувати звичайний мод-проксі HTTP з поточним налаштуванням. Це найменша зміна для вас, і вона перенесе вас до найбільш широко використовуваної та стабільної архітектури розгортання Tomcat.

/ Річі


Я гадаю, я міг би спробувати. Чи є у вас якісь важкі цифри щодо різниці в продуктивності?
Маркус Даунінг

Як я можу використовувати звичайний мод-проксі і все-таки отримати правильні імена хостів, що надходять до Tomcat? Я майже впевнений, що зараз їх усіх сприймають як місцевого господаря.
Маркус Даунінг

2
ProxyPreserveHost On - це, мабуть, те, що ви шукаєте. httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypreservehost
Стівен Вейс

5

Мій поточний кращий стек - використовувати nginx як заміну для Apache. За необхідності, php-fpm заповнює потребу в PHP. Така установка чудово працювала для розгортання програм, таких як Rails, Magento та SugarCRM.


4

Скляна рибка буде більш масштабованою, ніж Tomcat, оскільки вона використовує Grizzly (NIO). У вас немає багатьох варіантів, крім варіантів Tomcat, Jetty або Glassfish через вимогу Java. PHP можна запустити за допомогою Quercus , але може бути краще просто розгорнути його за допомогою Nginx.


2

На Java існує реалізація PHP. Я знаю (але не використовував) цю . Існує повідомлення в блозі про те, як встановити його на GlassFish (включаючи WordPress), але я думаю, що установка на tomcat така ж. Щодо .htaccess, ви не написали, що саме там у вас є, але якщо це для переписування URL-адрес, то є UrlRewriteFilter, який виконує ту саму семантику.


Файли .htaccess - це здебільшого файли, створені WordPress, тому вони містять кілька простих RewriteRules
Marcus Downing

Я думаю, що PHP не підтримуватиме їх, але не повинен бути важким процес, який читає їх і передає визначення у фільтр.
Девід Рабіновіц

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.