Apache прослушивает и перенаправляет на другой порт

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

Я пытаюсь разместить веб-сайт через тюрьму iocage во FreeBSD.

В моей тюрьме я размещаю домен с именем sub.domain.com. Мне удалось заставить Apache слушать другой порт, 10080. Поэтому, когда я перехожу на sub.domain.com:10080, я могу получить доступ к своему веб-сайту.

Я хотел бы иметь возможность перейти на sub.domain.com, а также получить доступ к моему веб-сайту. Насколько я понимаю, мне нужно перенаправить с помощью mod_proxy, чтобы разрешить 80 -> 10080.

В httpd.conf я раскомментировал mod_proxy и добавил следующее

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyRequests Off
    ServerName www.sub.domain.com
    ServerAlias sub.domain.com
    ProxyPass / http://localhost:10080
    ProxyPassReverse / http://localhost:10080
</VirtualHost>

Это не работает для меня, мне все еще нужно перейти на sub.domain.com:10080, чтобы получить доступ к моему сайту.

Какие-нибудь советы?

РЕДАКТИРОВАТЬ: текущая конфигурация также не работает

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyRequests Off
    ServerName <jailip>
    ServerAlias <jailip>
    ProxyPass / http://<jailip>:10080
    ProxyPassReverse / http://<jailip>:10080
</VirtualHost>

person JimBob    schedule 04.02.2018    source источник
comment
Вероятно, localhost разрешается в 127.0.0.1 на вашем хосте, но ваша тюрьма, скорее всего, назначена на какой-то другой IP-адрес, например. 127.0.0.2.   -  person Erik Cederstrand    schedule 05.02.2018
comment
Я попытался изменить локальный хост на фактический IP-адрес моей тюрьмы, но безуспешно.   -  person JimBob    schedule 05.02.2018
comment
Назначен ли тюрьме внешний IP-адрес для sub.domain.com в /etc/rc.conf? Если это так, и вы пытаетесь настроить Apache на хосте, ваш трафик никогда не достигнет Apache на хосте. Вместо этого он будет перенаправлен непосредственно в тюрьму, и вы можете просто позволить Apache в тюрьме прослушивать порт 80.   -  person Erik Cederstrand    schedule 05.02.2018
comment
Нет, я не настроил внешний IP в /etc/rc.conf. Я отредактировал свой пост, чтобы отразить то, что у меня есть сейчас. Я чувствую, что мне, вероятно, не хватает еще некоторых настроек в httpd.conf.   -  person JimBob    schedule 06.02.2018
comment
Хорошо, позвольте мне получить это прямо. У вас есть Apache на хосте и в джейле. Тюрьме не назначается IP-адрес sub.domain.com, а только частный адрес 127.0.0.X. Если это так, то это не может быть тюрьма, обслуживающая в настоящее время sub.domain.com:10080, если вы также не настроили правила брандмауэра для перенаправления трафика с хоста в тюрьму.   -  person Erik Cederstrand    schedule 07.02.2018
comment
Но, читая ваш перефразированный вопрос, httpd теперь прослушивает только порт 10080 на сервере, которому назначен IP-адрес sub.domain.com? Свяжитесь с sockstat | grep httpd. Если он не прослушивает порт 80, то ничего в конфигурации VirtualHost не изменит этого.   -  person Erik Cederstrand    schedule 07.02.2018
comment
У меня в джейле работает только Apache, в данном примере это 127.0.0.111. Без изменения порта прослушивания он доступен как 127.0.0.111:80, что означает, что я могу получить к нему доступ, напрямую перейдя по IP-адресу. Изменив порт прослушивания на 10080, он теперь доступен как 127.0.0.111:10080. В качестве первого шага я хотел бы посмотреть, смогу ли я просто получить доступ к тюрьме как 80 -> 10080, а затем я смогу выяснить, как добавить sub.domain.com. sockstat | grep httpd действительно показывает порт 10080.   -  person JimBob    schedule 08.02.2018
comment
Я хотел бы добавить, что я могу получить доступ к своему веб-сайту с sub.domain.com:10080, если я перенаправлю 10080 на 127.0.0.111, потому что sub.domain.com — это внешний IP-адрес моей локальной сети.   -  person JimBob    schedule 08.02.2018
comment
Итак, что вам нужно сделать, так это: 1) Разрешить Apache на хосте прослушивать порт 80, чтобы он отвечал http://sub.domain.com:80. 2) Пусть Apache в тюрьме слушает 127.0.0.111:10080 (также будет работать 127.0.0.111:80). 3) Добавьте запись VirtualHost в конфигурацию хоста Apache, которая имеет ProxyPass / http://127.0.0.111:10080`.   -  person Erik Cederstrand    schedule 08.02.2018
comment
Я не уверен, как бы я достиг шага 1. У меня нет двух запущенных экземпляров Apache. В записи hosts в моей cPanel для моего домена я перенаправил свой внешний IP-адрес на sub.domain.com. Затем в моей тюрьме, которая находится на моем локальном хосте, подключенном к моему внешнему IP-адресу, я запускаю Apache на порту 10080. Означает ли это, что мне нужно перенаправить порт в моей cPanel?   -  person JimBob    schedule 09.02.2018
comment
Если вы используете Apache на порту 10080, то нет смысла иметь запись <VirtualHost *:80> в вашем httpd.conf, потому что Apache даже не прослушивает порт 80. Также нет смысла настраивать прокси, потому что у вас работает только один HTTP-сервер. Если вы хотите получить доступ к sub.domain.com через порт 80, запустите Apache на порту 80.   -  person Erik Cederstrand    schedule 09.02.2018
comment
Возможно, это может дать вам некоторые идеи: stackoverflow.com/a/48241111/1135424   -  person nbari    schedule 13.02.2018
comment
Извините за поздний ответ, я был болен. Я не могу использовать порт 80 в своей сети, потому что порт 80 используется страницей входа в мой маршрутизатор. Поэтому, когда я пытаюсь зайти на свой ‹jail_ip›:80, я ничего не вижу. Однако, когда я слушаю на 10080 и захожу на ‹jail_ip›:10080, я вижу свою веб-страницу.   -  person JimBob    schedule 14.02.2018