Может ли кто-нибудь просветить меня, в чем преимущество использования NginX в качестве обратного прокси для Apache. Люди предлагают так, чтобы статический контент обрабатывался nginx, а динамический контент (файлы php) передавался Apache.
Разве нельзя позволить php-fcgi / php-fpm обрабатывать эти файлы PHP гораздо более разумно, чем позволить Apache mod_php обрабатывать их?
Каковы преимущества (с точки зрения производительности)
Если я выберу обратный прокси, мне нужно будет перезаписать nginx или .htaccess из apache будет работать как есть? (потому что это обратный прокси-сервер, поэтому вызовы направляются в apache, верно?)
TY заранее
Обратное проксирование медленнее и, как правило, хуже, однако некоторые причины его использования - поддерживать (некоторую) совместимость с файлами .htaccess (которые вам придется писать (и это не всегда практично), если вы используете чистую настройку nginx) или если вам требуются определенные модули apache. (Некоторые могут возразить, что если у вас есть эти требования, проще просто использовать apache.)
Если можете, используйте прямую установку nginx + PHP-FPM. Если вы не можете, хотя обратное проксирование может иметь некоторые преимущества, подумайте о последствиях, особенно если вы зависите от файлов .htaccess.
Я бы сказал, что это наоборот: исключение Apache из смеси повысит производительность. Вы бы сохранили Apache, если вам нравятся некоторые другие модули, которые предоставляет Apache, или если у вас есть какая-то внешняя причина продолжать использовать Apache для вашего динамического контента.
Допустимо позволить Apache обрабатывать перезапись, если вы ничего не делаете для доступа к своему статическому контенту. Но не забудьте исключить для .ht*
в вашем nginx conf: не хотите случайно предоставлять эти конкретные статические файлы широкой публике.
Я недавно переехал из Apache
, чтобы Nginx
. Хотя я не претендую на звание эксперта, я бы рекомендовал отказаться от Apache и использовать nginx
с участием PHP-FPM
вместо обратного прокси. Использование Nginx без Apache даст вам небольшой прирост производительности для нестатического контента и большой прирост производительности для статического контента. Поскольку Nginx не использует .htaccess
файлов, это означает, что вам нужно будет настроить Nginx для обработки всех ваших перенаправлений и т. д. Сначала это может показаться немного сложным, но как только я узнал, как настраивать Nginx, я обнаружил, что это намного проще и проще, чем использование файлов .htaccess. Существуют инструменты, которые автоматически конвертируют правила .htaccess в правила Nginx, но я бы рекомендовал научиться делать это самостоятельно. Я обнаружил, что инструменты не конвертируются достаточно точно и использовали слишком много if
заявления. Видеть: Если это зло.