HTTP сервер Apache – один из наиболее часто используемых веб-серверов в интернете на сегодняшний день. По своим характеристикам и многофункциональности он превосходит своих конкурентов (таких, как Nginx).
Одной из наиболее значимых функций Apache является возможность загружать и запускать различные типы модулей и конфигураций, не останавливая работу веб-сервера. Кроме того, не нужно каждый раз перекомпилировать сервер, добавляя в него новые модули. Важную роль играют .htaccess файлы, которые могут изменять конфигурации веб-сервера в определенных каталогах. В этой статье мы рассмотрим как изменить порт apache в Ubuntu и CentOS.
Как изменить порт Apache
Сервер Apache по умолчанию настроен на ожидание входящих соединений через порт 80. Если настроить протокол TLS, сервер будет слушать соединения через порт 443. Для использования других портов, необходимо подправить конфигурационный файл Apache.
В системе Debian/Ubuntu, требуется изменить файл конфигурации /etc/apache2/ports.conf, а в дистрибутивах на основе RHEL/CentOS - /etc/httpd/conf/httpd.conf. В зависимости от дистрибутива системы, откройте нужный файл с помощью текстового редактора и добавьте новый порт следующим образом:
sudo nano /etc/apache2/ports.conf
sudo nano /etc/httpd/conf/httpd.conf
В этом примере мы настроим HTTP сервер Apache для ожидания подключений на порту 8081. Убедитесь, что после директивы Listen 80, дающей указание серверу прослушивать порт 80, была добавлена следующая строка:
После того, как вы добавили приведенную выше строку, вам нужно создать или изменить виртуальные хосты Apache, чтобы привязать хост к нужному порту. В приведенном ниже примере мы изменим порт Apache для стандартного виртуального хоста веб-сервера с 80 на 8081.
Нужно открыть и отредактировать файл /etc/apache2/sites-enabled/000-default.conf, указав порт 8081, как показано на картинке ниже.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Чтобы применить изменения и новые порты Apache стали доступны, перезапустите сервис. После перезапуска порт 8081 должен отображаться в выводе утилиты ss или netstat. Команды для Ubuntu:
sudo systemctl restart apache2
sudo netstat -tlpn | grep apache
sudo ss -tlpn | grep apache
Для CentOS:
sudo systemctl restart httpd
sudo netstat -tlpn | grep httpd
sudo ss -tlpn | grep httpd
Настройка портов apache завершена. Теперь вы можете открыть браузер и зайти на веб-сервер, введя доменное имя или IP-адрес и порт 8081. Страница Apache должна отобразиться в браузере. Однако, если вы не можете просмотреть веб-страницу, вернитесь на консоль сервера и убедитесь, что правила брандмауэра установлены верно для разрешения сетевого трафика по данному порту:
http://server_ip:8081
Если у вас включен SELinux в CentOS или RHEL установите пакет policycoreutils, чтобы добавить необходимые правила. А потом перезапустите Apache для применения изменений.
sudo yum install policycoreutils
Чтобы открыть порт Apache 8081 добавьте правила SELinux.
sudo semanage port -a -t http_port_t -p tcp 8081
sudo semanage port -m -t http_port_t -p tcp 8081
sudo systemctl restart httpd
Откройте браузер и попытайтесь перейти на ваш сервер по IP-адресу или доменному имени через порт 8081. Убедитесь в работоспособности порта. В браузере должна отобразиться страница Apache.
Если вы вcё ещё не можете получить доступ к данному адресу убедитесь, что этот порт разрешен в брандмауэре вашего сервера.
Полезно, спасибо.