HTTP-сервер Apache, является одним из наиболее широко используемых веб-серверов. По умолчанию Apache прослушивает порт 80 для HTTP и порт 443 для HTTPS. Однако могут возникнуть ситуации, когда вам необходимо изменить эти порты по умолчанию, например, чтобы избежать конфликтов с другими службами или реализовать специфические сетевые конфигурации.
Изменение порта прослушивания для Apache - несложный процесс, но он требует административного доступа к серверу. Для этого необходимо изменить конфигурационные файлы Apache и перезапустить службу, чтобы применить изменения.
Независимо от того, работаете ли вы с Apache в системе Linux, macOS или Windows, шаги по изменению порта прослушивания схожи. Ниже вы найдете руководство, предназначенное для типичной установки Apache в Linux.
Шаги по изменению порта прослушивания для Apache
Откройте терминал на вашем сервере.
Найдите директиву Listen в конфигурационных файлах Apache.
1 | sudo grep -nr "^Listen" /etc/{httpd,apache2}/ |
Пример вывода
1 2 | grep: /etc/httpd/: No such file or directory /etc/apache2/ports.conf:5:Listen 80 |
Откройте файл конфигурации Apache с помощью удобного для вас текстового редактора.
1 | sudo nano /etc/apache2/ports.conf |
Перейдите к строке, начинающейся с Listen, за которой следует номер текущего порта.
1 | Listen 80 |
Измените номер порта на нужное значение.
1 | Listen 8080 |
Убедитесь, что выбранный порт не используется другими службами. Для проверки наличия конфликтов можно использовать команду netstat.
Сохраните файл и выйдите из текстового редактора.
Отредактируйте соответствующие конфигурации VirtualHost, чтобы задействовать новый порт.
1 2 3 | <VirtualHost *:8080> ... </VirtualHost> |
Убедитесь, что новый порт разрешен в вашем брандмауэре.
1 2 | sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT sudo ufw allow 8080/tcp |
Добавьте новый порт в список разрешенных портов для HTTP-трафика для SELinux
1 | sudo semanage port -a -t http_port_t -p tcp 8080 |
Перезапустите службу Apache, чтобы применить изменения.
1 | sudo systemctl restart apache2 |
1 | sudo systemctl restart httpd |
Убедитесь, что Apache теперь прослушивает новый порт, зайдя на свой сайт или сервер, используя новый номер порта в URL.
1 | curl -I 127.0.0.1:8080 |
Пример вывода
1 2 3 4 5 6 7 | HTTP/1.1 200 OK ... Server: Apache/2.4.55 (Ubuntu) Accept-Ranges: bytes Content-Length: 10671 Vary: Accept-Encoding Content-Type: text/html |