Apache и Nginx как на порту 80

Я пытаюсь установить Nginx на мой текущий сервер Cent OS Cloud, в котором установлен и запущен Apache httpd.

Моя хостинговая компания сообщает мне, что Nginx и Apache могут одновременно работать на порту 80, поэтому мой план состоял в том, чтобы преобразовать .htaccess и Apache conf из сайтов Wordpress в Nginx после установки через Yum.

Я также изучил эту проблему, и некоторые люди предлагают использовать Nginx в качестве обратного прокси и обслуживать только статические файлы, но запускать Apache с PHP, потому что Apache имеет встроенный PHP и потребляет меньше памяти, даже если он не поддерживает несколько одновременных запросов, таких как Nginx.

Чувство моего чувства заключается в том, что переключение всего на Nginx было бы полезным, но неуверенным на этом этапе.

Кроме того, есть ли что-нибудь, что я должен соблюдать при выполнении этого перехода?

Что бы вы сделали, если бы вы были в этой ситуации?

Ответ 1

Я не совсем уверен, что ваша хостинговая компания означает по их комментарию, но вы не сможете запускать BOTH Apache и Nginx на порту 80. Как только один привязан к порту 80, другой не сможет привязываться к нему.

Вероятно, наилучшей конфигурацией в вашей текущей ситуации было бы поставить Nginx на порт 80 и Apache на 8000 или аналогичный.

Используйте nginx для обслуживания статических файлов (см. try_files, потому что "if" is evil), а затем проксирует все запросы для PHP на порт 8000, используя HTTP-прокси-модуль.

Другой общей конфигурацией для PHP с Nginx является использование PHP-FPM и прокси через FastCGI, просто учебник "PHP-FPM Nginx {Your OS}" для учебника.

Там много дискуссий о производительности PHP-FPM/mod_php, но в моем личном опыте я нашел PHP-FPM более совершенным.

Ответ 2

Я бы использовал nginx в качестве сервера, обращенного к сети на порту 80, и прокси-сервер передал apache, который будет работать на другом порту. Эта конфигурация использует многие сайты. Обслуживание статических файлов с nginx намного эффективнее, чем с apache. На самом деле это намного проще, чем может показаться.

Этот документ подробно объясняется.

Ответ 3

Вы должны привязать свой внешний веб-сервер к общедоступному IP-адресу и внутреннему адресу веб-сервера к localhost (127.0.0.1:80).

Итак, если вы публично используете Nginx, привяжите его к общедоступному IP-адресу и попросите его прокси-сервер Apache на localhost.

Лучше использовать отдельные порты, чтобы упростить отладку.