Это может быть вопрос новичка, но я все еще изучаю веб-серверы и настройки обратного прокси. У меня есть два сервера, работающих в одной сети - один Tomcat и еще один Nginx, которые я собираюсь использовать обратный прокси-сервер для аналогичных серверов Tomcat. Моя идея ввести обратный прокси-сервер возникла после того, как я понял, что их можно использовать для сокрытия подлинности реального веб-сервера и для других преимуществ, таких как повышение производительности и балансировка нагрузки.
Проблема, с которой я столкнулся, заключается в том, что сервер tomcat доступен через оба IP-адреса - если я использую IP-адрес Nginx, он перенаправляется на полное доменное имя Tomcat (ожидаемое), но если я пингую с использованием полного доменного имени tomcat.domain.com, он показывает реальное IP сервера Tomcat, а не сервера Nginx. По сути, мой сервер Nginx не служит никакой цели. Что мне здесь не хватает?
Не открывайте сервер Tomcat напрямую в Интернете. Поместите веб-сервер в DMZ (т.е. за брандмауэром), затем поместите сервер Tomcat за другой брандмауэр. Вы можете использовать программные брандмауэры, предоставляемые операционной системой, или аппаратные брандмауэры, но вы не сказали, какую ОС вы используете, поэтому я не могу дать дополнительных советов. Что-то вроде IPTables или брандмауэр Windows. Если вы работаете в AWS, вы можете использовать их систему VPC.
Вы не хотите перенаправлять с nginx на Tomcat, вы хотите использовать Nginx как обратный прокси. Используйте директиву proxy_pass, чтобы запросы поступали на веб-сервер, веб-сервер запрашивает страницу у Tomcat, получает ответ, а затем отправляет его обратно в веб-браузер.