Я недавно установил tomcat через скрипт установки из сообщества apache solr typo3 и провел последние 3 дня, пытаясь выяснить, почему он не работает, пока случайно не заметил, что когда я запрашивал процесс, прослушивающий порт через "lsof -i ", это было связано с протоколом ipv6. Я везде гуглил, и большинство говорят, что установка адреса 0.0.0.0 в коннекторе tomcat решает эту проблему, другие говорят, что setting JAVA_OPTS = "- Djava.net.preferIPv4Stack = true" ; Я пробовал первый, который не работает, но последний я не уверен, где его поставить. Одно решение, которое я где-то читал, предложило поместить его в setenv.shно я не могу найти этот файл в моей установке Tomcat. Буду признателен за любую помощь на данный момент по этому поводу. Версия Tomcat - 6.x, а ОС - Ubuntu 11.10. Благодарность
32
Ответы:
Многие предложили обновление
catalina.sh
сценария запуска. Да, это решение будет работать, ноcatalina.sh
сценарий не предназначен для настройки / обновления. Все изменения должны идти в сценарий настройки вместо этого, то естьsetenv.sh
.ПРИМЕЧАНИЕ:
TOMCAT_HOME/bin/setenv.sh
по умолчанию не существует, вам нужно его создать. Проверьтеcatalina.sh
сценарий, и вы увидите, что сценарий запуска проверяет,setenv.sh
существует ли , и выполняется, если он существует.Итак, я предлагаю вам создать новый
TOMCAT_HOME/bin/setenv.sh
скрипт в одну строку:источник
Хорошо, я наконец решил это. Я был направлен попробовать это и решение Хенка. Ни один из которых, казалось, не работал с удаленным виртуальным сервером. Я предполагаю тот факт, что, поскольку я нахожусь в общем пространстве ядра, провайдер предотвращает это. В любом случае я добавил:
JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
в сценарий запуска catalina.sh, и это, похоже, решило проблему привязки tomcat к ipv6.источник
Правильный синтаксис для изменения catalina.sh будет:
источник
Если вы использовали этот установщик: « Apache Solr для TYPO3 », вы можете изменить адрес в файле
server.xml
. Значение по умолчанию указывает на localhost, поэтому найдите 127.0.0.1 и измените его на нужный IPv4-адрес. Не забудьте перезапустить Tomcat6, чтобы изменения вступили в силу.ОБНОВЛЕНИЕ, 20120521
Смотрите мой комментарий ниже о том, как отключить IPv6 в Ubuntu 11.10.
Я успешно проверил это на Virtualbox-VM на моем Mac. Адрес для соединительного порта 8080 был изменен с 127.0.0.1 на 0.0.0.0 in
server.xml
.Затем отключение IPv6 приводит к исчезновению tcp6, поэтому он привязывается к адресу только для IPv4.
До / с включенным IPv6:
После / IPv6 отключен:
источник
Хотя, вероятно, это не самый предпочтительный метод, я заметил, что отключение IPv6 на уровне ядра убедит Tomcat открыть привязку IPv4.
источник
Вместе с другим ответом, используя setenv.sh и CATALINA_OPTS ...
Используя Tomcat SSL с APR, единственный способ связать Tomcat с ipv4 - добавить это в конфигурацию коннектора:
server.xml выглядит так:
источник
Debian 8 перейдите к использованию вашего любимого редактора в / etc / default / grub ; найдите раздел GRUB_CMDLINE_LINUX_DEFAULT = "quiet" **, а затем добавьте ipv6.disable = 1 , как показано ниже.
GRUB_CMDLINE_LINUX_DEFAULT = "ipv6.disable = 1 тихий"
Сохранить и выйти. В той же директории используйте ваш любимый редактор в / etc / default / tomcat8, затем найдите раздел с JAVA_OPTS =, который будет закомментирован, добавьте следующее ниже этой строки. JAVA_OPTS = "$ JAVA_OPTS -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true"
Сохранить и выйти
В командной строке введите update-grub , если у вас есть sudo с sudo, перезапустите tomcat8 service tomcat8 restart
Вы должны быть на IPv4 сейчас.
Пожалуйста, в будущих сообщениях укажите полные пути и имена файлов. Спасибо
источник