Я недавно установил tomcat с помощью сценария установки из сообщества apache solr typo3 и провел последние 3 дня, пытаясь выяснить, почему он не работает, пока случайно не заметил, что когда я запросил процесс, прослушивающий порт, через "lsof -i ", он был привязан к протоколу ipv6. Я везде гуглил, и большинство говорит, что установка адреса на 0.0.0.0 в разъеме tomcat решает эту проблему, другие говорят, что настройка JAVA_OPTS = "- Djava.net.preferIPv4Stack = true"; Я пробовал первое, что не работает, но второе, я не знаю, куда его поставить. Одно решение, которое я где-то читал, предлагало вставить его в setenv.sh но я не могу найти этот файл в своей установке Tomcat. Я был бы признателен за любую помощь в этом отношении. Версия tomcat - 6.x, ОС - ubuntu 11.10. Спасибо
Многие предлагали обновить 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=true "
Хорошо, я наконец решил это. Меня направили в попробуй это и решение Хенка. Ни один из них, похоже, не работал с удаленным виртуальным сервером. Я предполагаю, что, поскольку я нахожусь в общем пространстве ядра, поставщик предотвращает это. На всякий случай добавил: JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
в сценарий запуска catalina.sh, и это, похоже, устранило проблему привязки tomcat к ipv6.
Правильный синтаксис для изменения catalina.sh:
JAVA_OPTS=" $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
Если вы использовали этот установщик: "Apache Solr для TYPO3", вы можете изменить адрес в файле server.xml
. По умолчанию указывается localhost, поэтому найдите 127.0.0.1 и измените его на нужный IPv4-адрес. Не забудьте перезапустить Tomcat6, чтобы изменения вступили в силу.
См. Мой комментарий ниже о том, как отключить IPv6 в Ubuntu 11.10.
Я успешно протестировал это на Virtualbox-VM на моем Mac. Адрес порта соединителя 8080 изменен с 127.0.0.1 на 0.0.0.0 в server.xml
.
Затем отключение IPv6 приводит к исчезновению «tcp6», поэтому он привязан к IPv4-адресу.
До / с включенным IPv6:
# netstat -anp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 1972/java
После отключения / IPv6:
# netstat -anp | grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2045/java
Хотя это, вероятно, не самый предпочтительный метод, я заметил, что отключение IPv6 на уровне ядра убедит Tomcat открыть привязку IPv4.
Наряду с другим ответом с использованием setenv.sh и CATALINA_OPTS ...
Используя Tomcat SSL с APR, единственный способ заставить Tomcat привязаться к ipv4 - добавить это в конфигурацию коннектора:
address="0.0.0.0"
server.xml выглядит так:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
compression="off"
connectionTimeout="1190"
address="0.0.0.0"
>
Debian 8 перейдите к своему любимому редактору на / и т.д. / по умолчанию / grub ; ищи раздел GRUB_CMDLINE_LINUX_DEFAULT= "тихо" ** с затем добавить ipv6.disable = 1, как показано ниже
GRUB_CMDLINE_LINUX_DEFAULT = "ipv6.disable = 1 quiet"
Сохранить и выйти. В этом же каталоге используйте свой любимый редактор на / и т.д. / по умолчанию / tomcat8 затем найдите раздел с JAVA_OPTS = который будет закомментирован, добавьте следующее ниже этой строки. JAVA_OPTS = "$ JAVA_OPTS -Djava.net.preferIPv4Stack = true -Djava.net.preferIPv4Addresses = true"
Сохранить и выйти
В командной строке введите update-grub , если вы используете sudo с sudo, перезапустите tomcat8 перезапуск службы tomcat8
Теперь вы должны быть на IPv4.
Пожалуйста, в будущих публикациях указывайте полные пути и имена файлов. Спасибо