Поиск по сайту:

Как изменить HTTP-порт Apache в Linux


HTTP-сервер Apache сегодня является одним из наиболее часто используемых веб-серверов в Интернете благодаря своей гибкости, стабильности и множеству функций, некоторые из которых на данный момент отсутствуют на других веб-серверах, например конкурент Nginx.

Некоторые из наиболее важных функций Apache включают в себя возможность загружать и запускать различные типы модулей и специальные конфигурации во время выполнения, без фактической остановки сервера или, что еще хуже, компиляции программного обеспечения каждый раз, когда добавляется новый модуль и играет особую роль. с помощью файлов .htaccess, которые могут изменять конфигурации веб-сервера, специфичные для корневых каталогов веб-сайта.

По умолчанию веб-серверу Apache предписано прослушивать входящее соединение и выполнять привязку к порту 80. Если вы выберете конфигурацию TLS, сервер будет прослушивать безопасные соединения через порт 443.

Чтобы дать указание веб-серверу Apache привязывать и прослушивать веб-трафик на портах, отличных от стандартных веб-портов, вам необходимо добавить новый оператор, содержащий новый порт для будущих привязок.

В системе на базе Debian/Ubuntu файл конфигурации, который необходимо изменить, — это файл /etc/apache2/ports.conf, а в системе на основе RHEL/CentOS. дистрибутивах отредактируйте файл /etc/httpd/conf/httpd.conf.

Откройте файл, относящийся к вашему собственному дистрибутиву, с помощью консольного текстового редактора и добавьте новый оператор порта, как показано в приведенном ниже фрагменте.

nano /etc/apache2/ports.conf     [On Debian/Ubuntu]
nano /etc/httpd/conf/httpd.conf  [On RHEL/CentOS]

В этом примере мы настроим сервер Apache HTTP для прослушивания соединений через порт 8081. Обязательно добавьте в этот файл приведенный ниже оператор после директивы, которая предписывает веб-серверу прослушивать порт 80, как показано на рисунке ниже.

Listen 8081

После того, как вы добавили приведенную выше строку, вам необходимо создать или изменить виртуальный хост Apache в дистрибутиве на основе Debian/Ubuntu, чтобы начать процесс привязки в соответствии с вашими требованиями к виртуальному хосту.

В дистрибутивах CentOS/RHEL изменение применяется непосредственно к виртуальному хосту по умолчанию. В приведенном ниже примере мы изменим виртуальный хост веб-сервера по умолчанию и укажем Apache прослушивать веб-трафик с порта 80 на порт 8081.

Откройте и отредактируйте файл 000-default.conf и измените порт на 8081, как показано на рисунке ниже.

nano /etc/apache2/sites-enabled/000-default.conf 

Наконец, чтобы применить изменения и привязать Apache к новому порту, перезапустите демон и проверьте таблицу сокетов локальной сети с помощью команды netstat или ss. Прослушиваемый порт 8081 должен отображаться в сетевой таблице вашего сервера.

systemctl restart apache2
netstat -tlpn| grep apache
ss -tlpn| grep apache

Вы также можете открыть браузер и перейти к IP-адресу или доменному имени вашего сервера через порт 8081. Страница Apache по умолчанию должна отображаться в браузере. Однако, если вы не можете просмотреть веб-страницу, вернитесь к консоли сервера и убедитесь, что установлены правильные правила брандмауэра, разрешающие трафик порта.

http://server.ip:8081 

В дистрибутиве Linux на базе CentOS/RHEL установите пакет policycoreutils, чтобы добавить необходимые правила SELinux для привязки Apache к новому порту, и перезапустите HTTP-сервер Apache для применения изменений.

yum install policycoreutils

Добавьте правила Selinux для порта 8081.

semanage port -a -t http_port_t -p tcp 8081
semanage port -m -t http_port_t -p tcp 8081

Перезапустите веб-сервер Apache.

systemctl restart httpd.service 

Выполните команду netstat или ss, чтобы проверить, успешно ли привязывается новый порт, и прослушать входящий трафик.

netstat -tlpn| grep httpd
ss -tlpn| grep httpd

Откройте браузер и перейдите к IP-адресу вашего сервера или имени домена на порту 8081, чтобы проверить, доступен ли новый веб-порт в вашей сети. В браузере должна отобразиться страница Apache по умолчанию.

http://server.ip:8081 

Если вы не можете перейти по указанному выше адресу, убедитесь, что вы добавили правильные правила брандмауэра в таблицу брандмауэра вашего сервера.