Я не могу заставить Apache прослушивать определенный IP-адрес. Это локальный веб-сервер, а не публичный.
Я использую CentOS 5.11, использую Apache 2.2.
Конфигурация по умолчанию httpd.conf отлично работает, но слушает только статический IP-адрес сервера. 10.0.0.101:80
.
Я добавил Listen 10.0.0.103:80
до конца httpd.conf, но получите ошибку:
Starting httpd: (99)Cannot assign requested address: make_sock: could not bind to address 10.0.0.103:80
Я следую руководству по созданию кластера высокой доступности, которое можно увидеть на https://www.howtoforge.com/high_availability_heartbeat_centos. Если бы я только мог заставить Apache запускаться с этого адреса, я был бы золотым.
Я использую эту старую версию CentOS, потому что пытаюсь использовать старое оборудование, а не отказываться от него.
Я искал 4 часа подряд в Google, на сайте CentOS и на сайте Apache и не нашел решения.
Apache не будет связываться с вашим VIP, потому что он не настроен ни на каком сетевом интерфейсе.
Чтобы это произошло, вам нужно установить sysctl:
sysctl net.ipv4.ip_nonlocal_bind=1
После этого Apache может выполнить привязку, но, конечно же, трафик не будет передаваться, пока машине не будет назначен VIP.
В вашем httpd.conf проверьте, активна ли у вас старая директива Listen. Добавление новой директивы может привести к конфликту двух директив.
Иначе проверьте, прослушивает ли другой процесс порт 80, выполнив это:
netstat -plant
Надеюсь, вы увидите что-то подобное и убьете его:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 939/webserver