Перейти к содержимому

Где прописать порт сервера апач

  • автор:

Как изменить 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

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

Все права защищены. © Linux-Console.net • 2019-2023

Как запустить Apache не на 80 порту

Если какая-либо программа использует порт, то другой процесс уже не может использовать этот же самый порт. К примеру, если на вашем компьютере порт 80 уже занят, то Apache просто не запустится).

Ещё одной причиной, почему может возникнуть желание поменять порт — сделать ваш сервер менее заметным. К примеру, если вы не предприняли мер по защите, то любой в вашей локальной или глобальной сети может подключиться к вашему веб-серверу. Если скрипты содержат уязвимости или просто плохо настроены, то постороннее лицо может лазить по вашим локальным сайтам и, в случае удачной атаки, даже лазить по всему вашему компьютеру. Если поменять порт со стандартного 80 на какой-нибудь необычный, то сервер будет чуть труднее найти. Хотя сканеры портов всё равно смогут это сделать.

Итак, по умолчанию Apache использует 80 порт, это определяется директивой:

Listen 80

в конфигурационном файле httpd.conf.

Чтобы изменить порт, откройте этот файл и вместо 80 впишите любой другой незанятый в вашей системе:

Listen 48855

Для кого не подойдёт смена порта

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

Как открыть сайт на нестандартном порту

Чтобы открыть сайт на нестандартных портах (не на 80 или 443), добавьте через двоеточие к адресу сайта порт, который прослушивает сервер:http://localhost:48855

Также можно делать ссылки такого вида: http://localhost:48855. Они являются работающими и вы можете перенаправить посетителя с одной страницы или сайта на другой, работающий на нестандартном порте.

Связанные статьи:

  • Apache Forwarding — проброска портов веб-сервера (100%)
  • Apache для Windows (52.4%)
  • Как запустить Apache на Windows (52.4%)
  • Документация по Apache на русском языке (52.4%)
  • Как подключить PHP к Apache на Windows (52.4%)
  • Модуль Apache mod_alias (RANDOM — 52.4%)

Apache Forwarding — проброска портов веб-сервера

Чтобы понимать, что такое Forwarding и для чего это нужно, вспомним как устроено подключение большинства домашних компьютеров. Обычно у большинства из нас дома установлен роутер, к которому подключён кабель Интернет-провайдера. От этого роутера наши домашние устройства — компьютеры, телефоны, планшеты, умные телевизоры и другие — подключаются к Интернету через Wi-Fi или кабель. То есть у нас дома функционирует локальная сеть, в которой у каждого из устройств есть свой локальный (серый) IP адрес.

Представим, что на одном из компьютеров вы установили и настроили веб-сервер Apache. И вы хотите, чтобы к этому веб-серверу можно было подключаться из Интернета. Самый простой способ это сделать — набрать в адресной строке внешний IP адрес.

Кстати, вот вы сидите за компьютером, который через роутер подключён к Интернету, у меня к вам вопрос, какой внешний IP адрес у компьютера? Вы можете зайти на один из многочисленных сервисов показа вашего IP адреса, но суть в том, что любой ответ будет неправильным. Дело в том, что у вашего компьютера, который подключён к Интернету через роутер, вообще нет внешнего IP! Этот внешний IP есть только у вашего роутера (и то не всегда — об этом в этой же статье, но позже).

Если вашему компьютеру нужно выйти в Интернет, то он по локальной сети обращается к роутеру, роутер для него делает запрос, и затем также по локальной сети отправляет полученный ответ. То есть роутер выходит в Интернет, а ваш компьютер — нет. У роутера есть внешний IP адрес, а у вашего компьютера — нет.

Возвращаемся к нашей ситуации — мы хотим, чтобы наш веб-сервер был доступен из Глобальной сети (из Интернета) — как мы все знаем, в глобальной сети компьютеры обмениваются данными друг с другом на основе адресации по IP. Но у нашего компьютера вообще нет внешнего IP — есть только локальный, который для Интернета является немаршрутизируемым, то есть никто никакие данные на наш локальный IP адрес не сможет прислать из глобальной сети.

Вот именно эту проблему и решает Forwarding, который ещё называют «переадресацией» портов, «проброской портов», «перенаправлением портов».

Для чего нужна проброска портов. Что делает Forwarding

Перенаправление портов заключается в следующем: на роутере (или на другом сетевом устройстве) устанавливается правило, суть которого примерно в следующем

«трафик, пришедший на порт 80 отправить на IP адрес 192.168.1.30 на порт 80».

В качестве IP адреса может быть указан локальный, серый IP. Пример такого адреса выше (192.168.1.30). В качестве исходного порта и порта назначения можно указывать любые порты, они не обязательно должны быть одинаковыми.

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

Перенаправление портов для Apache

Как бы это не было странно, но именно в настройках Apache ничего для перенаправления портов делать не надо.

Настройка роутера требует добавления одной записи, в которой нужно указать локальный IP адрес, на который будет переадресовываться пришедший запрос. По умолчанию в роутерах используется DHCP — если коротко, благодаря этому протоколу любое подключившееся к роутеру устройство автоматически получает IP адрес. Это удобно — не нужно делать настройки. Но дело в том, что устройству выдаётся любой не занятый IP в локальной сети. Поэтому у компьютера с веб-сервером может меняться IP адрес при каждом переподключении, в результате, настроенная переадресация портов перестанет работать из-за смены IP веб-сервера.

То есть начать нужно с того, чтобы настроить статичный локальный IP адрес для компьютера. Это можно сделать двумя способами: 1) на компьютере с веб-сервером, 2) в роутере

Для изменения на компьютере, откройте Панель управления → Сеть и Интернет → Центр управления сетями и общим доступом → Изменение параметров адаптера:

Правой кнопкой мыши откройте контекстное меню интересующего вас подключения, найдите там пункт IP версии 4 (TCP/IPv4):

Нажмите Свойства и пропишите нужные параметры в зависимости от настроек вашей сети (Основной шлюз — это IP адрес вашего роутера):

Некоторые роутеры поддерживают выдачу статичных IP адресов определённым устройствам сети — они их запоминают на основе MAC-адреса устройства. У всех роутеров это настраивается чуть по-разному, но обычно нужно искать в настройках DHCP. Некоторые роутеры не поддерживают эту возможность.

Переадресация портов для Apache в роутере

Теперь, когда компьютеру с веб-сервером назначен постоянный локальный IP, нужно добавить правило перенаправления портов. В роутерах это может называться Forwarding, «Перенаправление портов», «Переадресация портов» и т. д. Иногда в роутерах имеются заготовленные настройки и можно выбрать из списка название службы, для которой вы хотите сделать переброску портов. Для Apache выберите службу HTTP:

В качестве портов назначения и перенаправления запроса укажите 80. На скриншоте видно, что можно установить не один порт, а диапазон портов. Если вы хотите настроить только один порт, то укажите одно и то же значение в качестве начала диапазона и конца диапазона.

В качестве Local (локальный IP, адрес, куда будет перенаправлен запрос) укажите IP веб-сервера. External (внешний IP) указывать не нужно.

Активируйте созданное правило перенаправления портов.

Теперь все запросы, пришедшие на 80 порт роутера, будут перенаправлены на указанный IP адрес и указанный порт. Аналогичные настройки можно сделать для любых служб — для FTP сервера, SSH и так далее. То есть к этим службам появиться доступ из внешней сети.

Делая такие настройки, всегда помните о безопасности. Теперь служба становится доступной из глобальной сети, и хакеры могут атаковать её.

Когда не нужен Forwarding

Если у вас кабель Интернет-провайдера напрямую подключается к компьютеру с веб-сервером, то вам не нужен форвардинг. При аренде VPS сервера также не нужен форвардинг, так как у таких серверов прямой (белый) IP адрес.

Если Интернет провайдер использует NAT

NAT — это технология, которая позволяет множеству устройств выходить в Интернет используя один и тот же IP адрес. Кстати, в вашей локальной сети, в которой имеется роутер, уже применяется NAT — именно благодаря этому все ваши устройства могут выходить в Глобальную сеть и не нужно каждому из них иметь внешний IP.

Как вы понимаете, это часто используемая технология. Возможно, вы много лет ею пользуетесь, даже не зная про неё. Она действительно приносит очень много пользы, но у неё есть недостаток — она позволяет делать подключения «в одну сторону». То есть если ваш компьютер инициализировал подключение к Интернету, то он отправит его роутеру, роутер сделает две вещи: 1) запомнит, что запрос пришёл с определённого устройства и 2) отправить этот запрос в Интернет. Когда придёт ответ, роутер всё ещё «помнит», что этот запрос был сделан для определённого устройства в локальной сети, и отправит ответ именно этому устройству. И так происходит каждый раз.

Но вот если на роутер придёт новый HTTP запрос из Глобальной сети (не ответ на запрос, а именно новый запрос), то роутер банально не знает, для кого в локальной сети он предназначен (если не настроена переадресация портов). Поэтому с этим поступившим запросом роутер ничего не делает. Мы уже рассмотрели эту проблему и даже нашли решение — переадресация портов. Но многие Интернет-провайдеры также используют NAT. И работа происходит по точно такому же принципу — ваши HTTP запросы уходят в Глобальную сеть и вы без проблем получаете HTTP ответы, но новые запросы из Интернета к вашему компьютеру не могут пройти через NAT.

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

Связанные статьи:

  • Как запустить Apache не на 80 порту (100%)
  • Apache для Windows (52.4%)
  • Как запустить Apache на Windows (52.4%)
  • Документация по Apache на русском языке (52.4%)
  • Как подключить PHP к Apache на Windows (52.4%)
  • Как исправить «Configuration File (php.ini) Path» no value (RANDOM — 50%)

Как поменять порт WEB-сервера Apache

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 Listen 443 Listen 443 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Как видим, Апач действительно слушает 80-й порт при http-запросе, а при https-запросе — порт 443.

Меняем http-порт 80 Apache на 8080

Для того, чтобы Apache перестал занимать 80-й порт, а стал отвечать с 8080-порта,

  1. в файле ports.conf нужно
    • поменять строку Listen 80
    • на строку Listen 8080
  2. перезапустить Apache командой
    • apachectl -k restart

Проверяем смену http-порта Apache на 8080

Если раньше сайт отвечал на запрос в браузере:

http://mysite.ru/

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

http://mysite.ru:8080/

Резюме

Таким образом можно освободить 80-й порт, перепрописав его для Apache на порт 8080.

Если на сервере несколько сайтов, то для каждого виртуального хоста в папке /etc/apache2/sites-available нужно прописать порт 8080 вместо 80:

И, конечно, перезагрузить Апач.

Если NGiNX ещё не установлен, остановим Apache командой

P.S.

Перед перезагрузкой Апача полезно проверять на косячность правок его конфигов командой apachectl stop . Включим после того, как установим NGiNX.

root@server:~# apachectl -t Syntax OK

Так должна выглядеть проверка синтаксиса конфигурации Apache.

После этого можно перезагрузить NGiNX и убедиться в правильности работы обоих серверов на портах 80 и 8080 (читать по → этой ссылке).

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *