Разобрался с помощью:
Почти идеальное решение для меня, но переадресацию портов пришлось делать по-другому: https://www.digitalocean.com/community/questions/how-to-access-a-java-web-application-by-a-domain-name- используя-8-кот
О переадресации портов: https://www.systutorials.com/816/port-forwarding-using-iptables/
С помощью этой статьи и поста Роберта Гоули я понял, что портовые команды «переадресации» мне действительно нужны: https://askubuntu.com/questions/104824/port-forward-to-a-port-on-the- та же машина
Итак, все пришло к этим шагам:
- Остановка сервера Apache2 на моей Ubuntu
Редактирование конфигурации хоста в Tomcat's server.xml чтобы он выглядел следующим образом:
<Host name="mydomain.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Alias>www.mydomain.com</Alias> <Context path="" docBase="mydomain_appname" debug="0" privileged="true" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" resolveHosts="false"/></Host>
Затем я выполнил эти команды, но последние удалили правила, которые я видел в iptables (не знаю, какое влияние оказали правила 1 и 3):
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT - до XXXXX: 8080
iptables -A FORWARD -p tcp -d XXXXX --dport 8080 -j ПРИНЯТЬ
iptables -t nat -A POSTROUTING -j MASQUERADE
- И вот наконец я побежал:
sudo iptables -t nat -I ПРЕДУПРЕЖДЕНИЕ -p tcp --dport 80-j НАПРАВЛЕНО --to-ports 8080
sudo iptables -t nat -I ВЫХОД -p tcp -o lo --dport 80-j НАПРАВЛЕНО --to-ports 8080
В итоге: теперь я могу получить доступ к своему веб-сайту с www.mydomain.com, как и любой другой веб-сайт. Порт 8443 остается в URL, когда я получаю доступ к защищенным страницам. Нужно это исправить.