Apache (сейчас Apache 2) до сих пор является WEB-сервером по умолчанию и большинство хостингов ставит его единственным HTTP-сервером. Однако, с появлением NGiNX ситуация поменялась, и на 80-м порту предполагается наличие более шустрого NGiNX тогда, как более навороченный Apache ставится уже за ним с тем, чтобы обрабатывать сложные запросы по сборке динамических страниц «на лету». А вся статика (типа картинок, JavaScript и CSS-файлов) отдаётся быстро и сразу NGiNX'ом. Так как порт 80 для всех браузеров до сих пор остался портом для http-запросов, то на этом порту на сервере должен стоять NGiNX, а Apache, как правило, вешается на дополнительный для http порт 8080. В этой статье рассмотрим, как поменять настройки Apache на сервере так, чтобы он отвечал с порта 8080, освободив 80-й порт для NGiNX.
ports.conf
— основной файл конфигурации портов WEB-сервера Apache
В предыдущей статье было подробно разобрано, как найти директорию на сервере с файлами конфигурации Apache на удалённом сервере. В этой же директории должен располагаться файл ports.conf
, в котором прописаны порты, с которыми работает Apache.
Содержимое файла ports.conf
по умолчанию
Файл ports.conf
имеет следующее содержимое сразу после установки Apache на сервер:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Как видим, Апач действительно слушает 80-й порт при http-запросе, а при https-запросе — порт 443.
Меняем http-порт 80 Apache на 8080
Для того, чтобы Apache перестал занимать 80-й порт, а стал отвечать с 8080-порта,
- в файле
ports.conf
нужно- поменять строку
Listen 80
- на строку
Listen 8080
- поменять строку
- перезапустить Apache командой
apachectl -k restart
Проверяем смену http-порта Apache на 8080
Если раньше сайт отвечал на запрос в браузере:
http://mysite.ru/
то после описанных выше манипуляций, сайт по этому запросу становится недоступным. Для того, чтобы увидеть сайт, нужно обратиться к порту 8080 на сервере, указав это в явном виде в строке запроса браузера:
http://mysite.ru:8080/
Резюме
Таким образом можно освободить 80-й порт, перепрописав его для Apache на порт 8080.
Если на сервере несколько сайтов, то для каждого виртуального хоста в папке /etc/apache2/sites-available
нужно прописать порт 8080 вместо 80:
<VirtualHost 127.0.0.1:8080>
И, конечно, перезагрузить Апач.
Если NGiNX ещё не установлен, остановим Apache командой
P.S.
Перед перезагрузкой Апача полезно проверять на косячность правок его конфигов командой apachectl stop
. Включим после того, как установим NGiNX.
root@server:~# apachectl -t
Syntax OK
Так должна выглядеть проверка синтаксиса конфигурации Apache.
После этого можно перезагрузить NGiNX и убедиться в правильности работы обоих серверов на портах 80 и 8080 (читать по → этой ссылке).
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)