Вопрос или проблема
Я удалил символические ссылки из /etc/apache2/sites-enabled. Я создал конфигурационный файл в /etc/apache2/sites-available/, который указывает на мой сайт только с HTTP для порта 80. Затем я создал символическую ссылку из sites-available/my.conf в sites-enabled и запустил service apache2 restart. Мой сайт появился, и все в порядке. Через несколько дней я запустил ss -a и обнаружил, что apache2 слушает на 443. Конфигурации site-enabled, чтобы указать это, нет.
Apache загружает все из site-enabled И apache.conf. Проверьте этот файл, если у вас нет инструкций, которые заставляют его слушать 443 или включают другие файлы, которые это делают.
Apache httpd слушает на IP-адресах и портах, настроенных с помощью директивы Listen
. Они настраиваются до конфигурации ваших сайтов. Обычно 80
будет в httpd.conf или apache.conf. 443
может быть в отдельном конфигурационном файле ssl.
Чтобы найти их все:
grep -r Listen /etc/apache2/*
Apache включает файл в /etc/apache2 под названием ports.conf
Удалите его оттуда и перезапустите apache. Это нарушит работу любых SSL-сайтов, которые вы настроили.
Ответ или решение
Проблема: Apache2 слушает на порту 443, хотя в конфигурационных файлах sites-available этого не указано
Ситуация, когда Apache2 продолжает слушать на порту 443, даже если конфигурационные файлы в каталоге /etc/apache2/sites-enabled не указывают на это, может вызывать большое беспокойство у системных администраторов и веб-разработчиков. Давайте разберёмся, какие шаги можно предпринять для выявления и устранения данной проблемы.
1. Понимание директивы Listen
Apache использует директиву Listen
для указания IP-адресов и портов, на которых он должен слушать входящие подключения. Эта директива может находиться не только в файлах виртуальных хостов, но также в основных конфигурационных файлах, таких как apache2.conf
или ports.conf
.
Проверка директив Listen:
Для обнаружения всех мест, где могут быть указаны директивы слушания, выполните следующую команду:
grep -r Listen /etc/apache2/*
Этот шаг поможет вам найти строки, содержащие директивы Listen
и выяснить, почему Apache2 слушает на порту 443.
2. Просмотр файла ports.conf
В большинстве установок Apache существует файл ports.conf
, который обычно находится в каталоге /etc/apache2/
. Этот файл часто содержит стандартные директивы для протоколов HTTP и HTTPS.
Откройте файл ports.conf
и проверьте, указано ли в нём следующее:
Listen 443
Если данная строка присутствует, это объясняет, почему Apache слушает на порту 443. Удалите или закомментируйте эту строчку, если вам не требуется HTTPS.
3. Конфигурационные файлы в папке sites-available
Поскольку вы изменили конфигурацию, создавая собственный конфигурационный файл для прослушивания только порта 80, убедитесь, что в соответствующих файлах не будет упоминания о порте 443. Папка /etc/apache2/sites-available
может содержать разные файлы конфигураций, и, если в них присутствует настройка для HTTPS, это также может быть источником проблемы.
4. Проверка дополнительных конфигурационных файлов
Также важно проверить наличие файлов в каталогах, таких как /etc/apache2/conf-available
и /etc/apache2/conf-enabled
, которые могут включать дополнительные конфигурации, касающиеся SSL или порта 443. Выполните команду:
grep -r Listen /etc/apache2/conf-enabled/*
Это поможет выявить дополнительные конфигурации, которые могут конфигурировать Apache на прослушивание порта 443.
5. Перезапуск Apache
После внесения изменений в конфигурацию Apache для обеспечения корректного применения новых настроек перезапустите сервер:
sudo systemctl restart apache2
Заключение
Если вы выяснили причины, по которым Apache продолжает слушать на порту 443, и устранили их, вы сможете управлять настройками серверов более эффективно. Обязательно документируйте любые изменения, чтобы избежать путаницы в будущем. Чтобы обеспечить максимальную безопасность вашего сервера и предотвратить несанкционированные подключения, всегда проверяйте свои конфигурации и убедитесь, что на сервере работает только то, что вам необходимо.
Эти шаги помогут вам лучше понять конфигурацию вашего Apache сервера и обеспечить соответствие настройкам. Если проблема сохраняется, рассмотрите возможность более глубокого анализа логов Apache и наличия сторонних модулей или скриптов, которые могут изменять поведение сервера.