Как изменить порт Tomcat с 8080 на 80?


Ответы:


215

1) Перейти в confпапку в директории установки tomcat

 e.g. C:\Tomcat 6.0\conf\

2) Редактировать следующий тег в server.xml файле

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

3) Измените port=8080значение наport=80

4) Сохранить файл.

5) Остановите свой Tomcat и перезапустите его.


14
Также обязательно остановите и перезапустите Tomcat. Просто говорю. :)
AllieCat

3
Я сделал это, и я получаю ошибку 404! Есть ли что-то еще, что я должен делать?
Сатурниан,

15
В etc/default/tomcat7наборе AUTHBIND=yes, чтобы избежать ошибки PermissionDenied для порта 80.
Markus Pscheidt

1
Смотрите ответ Роуз для среды Linux!
Марко

В этом ответе отсутствует информация / etc / authbind, см. Ответ Роуз ниже
jorfus

119

Ubuntu 14.04 LTS, в Amazon EC2. Следующие шаги решили эту проблему для меня:

1. Отредактируйте server.xml и измените port = "8080" на "80"

sudo vi /var/lib/tomcat7/conf/server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2. Отредактируйте файл tomcat7 (если файл не создан, вам нужно его создать)

sudo vi /etc/default/tomcat7

раскомментируйте и измените # AUTHBIND = нет на да

3. Установите authbind

sudo apt-get install authbind

4. Выполните следующие команды, чтобы обеспечить чтение + выполнение tomcat7 на порте 80.

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

5. Перезагрузите кота:

sudo /etc/init.d/tomcat7 restart

1
Это работает. Люди Linux, по крайней мере, у меня работает с Ubuntu 14.04.2 LTS.
Родриго Гургель

3
Автосвязка - правильный ответ. Но обратите внимание, что вы можете пропустить автосвязку, если вы используете sudo startup.sh, поскольку порт 80 будет предоставлен расширенному пользователю.
Марсио Ясински

1
Спасибо!! Я знал о включении authbind в конфигурации сервера, но не знал, что мне нужно было создать файл в authbind для зарегистрированного порта! Я бы хотел, чтобы ОП изменило принятое решение на этот ответ! (Я вижу, что вы почти на 3 года опоздали с ответом: P)
Fr0zenFyr

1
Работает с Tomcat 9 на Lubuntu 18.0.4, без установки authbind, только добавляя настройки.
Марко Сулла

107

В Linux на основе Debian (включая Ubuntu) вам также нужно перейти /etc/default/tomcat7, раскомментировать #AUTHBIND=noстроку и установить для нее значение «да», чтобы позволить серверу связываться с привилегированным портом.


2
Привет, у меня нет этого конкретного файла
nmkyuppie

Какая версия кота? На какой ОС вы работаете?
Pioneer Skies

7
Не работает для Tomcat, если он установлен zip / tar.gz, так как они не создают файл в / etc / defaults /.
Горкаморка

9
Этот путь должен быть следующим: / etc / default / tomcat7 (обратите внимание на отсутствие 's' по умолчанию)
Tristan Reid

1
Что равно для Tomcat 9?
кату

29

В системах Ubuntu и Debian необходимо выполнить несколько шагов:

  1. В server.xml измените строку <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>на port="80".

  2. Установите рекомендуемый (не обязательный) пакет authbind с помощью следующей команды:

    sudo apt-get install authbind

  3. Включите authbind в файле server.xml (в любом из /etc/tomcat6или /etc/tomcat7), раскомментировав и установив строку следующим образом:

    AUTHBIND=yes

Все три шага необходимы.


5
Не работает для Tomcat (если установлен zip / tar.gz) в 13.10.
Горкаморка

4
Чтобы заставить его работать с zip / tar.gz, выполните шаги 1 и 2 выше, добавьте AUTHBIND = yes в bin / setenv.sh (создайте, если его там нет) и начните с root. Работает с LTS 12.04, также должен работать с 13.10.
Карл

В моем случае это не удалось (без сообщения об ошибке в catalina.out) без пакета authbind, сработало после его установки
golimar

Не могли бы вы указать на документацию об AUTHBIND = да? Я нахожу это нигде.
ARX

Я не могу найти упоминания о настройке AUTHBIND как части конфигурации серверного элемента в документации TOMCAT. Странный.
Питер Н. Штайнмец

22

Я попытался изменить порт с 8080на 80в, server.xmlно у меня не получилось. Затем я нашел альтернативу, обновите, iptablesчто, я уверен, влияет на производительность.

Я использую следующие команды:

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/service iptables save

http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html#port80


как вернуть это?
SAI GIRI CHARY AOUSULA

Выполните следующую команду для удаления маршрутизации: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol

17

Поскольку предыдущие ответы не работали (это было хорошо, но недостаточно) для меня на сервере Ubuntu 14.04, я упоминаю эти рекомендации (это цитата).

Отредактируйте: обратите внимание, что, как @ jason-faust упомянул об этом в комментариях, 14.04 authbindпакет, который поставляется с ним, теперь поддерживает IPv6, поэтому предпочитаемое IPv4 больше не нужно .

1) Install authbind
2) Make port 80 available to authbind (you need to be root):

  touch /etc/authbind/byport/80
  chmod 500 /etc/authbind/byport/80
  chown tomcat7 /etc/authbind/byport/80

3) Make IPv4 the default (authbind does not currently support IPv6).
   To do so, create the file TOMCAT/bin/setenv.sh with the following content: 

   CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"

4) Change /usr/share/tomcat7/bin/startup.sh

  exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
  # OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"

Если у вас уже есть setenv.shфайл /usr/share/tomcat7/binс CATALINA_OPTS, вы должны использовать:

export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"

Теперь вы можете изменить порт, 80как сказано в других ответах.


2
Я хотел бы добавить, что файл startup.sh находится по адресу: /usr/share/tomcat7/bin/startup.sh - Это не совсем очевидно для нас, новичков;)
ConMan

@ConMan обновил пути, это отличная идея для сохранения других поисков. Я признаю, что знание этого места не очевидно в начале.
Smonff

1
Спасибо, это сработало отлично, я привык к centos, так что это было полезно для меня, где это не было проблемой для меня.
med116

1
Я только что выполнил это сегодня, 14 апреля, пакет authbind, который поставляется вместе с ним, теперь поддерживает IPv6, поэтому предпочитаемый IPv4 больше не нужен.
Джейсон Фауст

Я также сделал: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Кейси Харрильс

5

На современном linux лучший подход (для меня) - использовать xinetd:

1) создать /etc/xinet.d/tomcat-http

service http
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8080
}

2) создать /etc/xinet.d/tomcat-https

service https
{
        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8443
}

3) chkconfig xinetd включен

4) /etc/init.d/xinetd start


Другой подход состоит в том, чтобы скомпилировать и использовать jsvc, но xinetd определенно проще
cgdave

5

Если кто-то ищет, как изменить номер порта tomcat в Eclipse IDE пользователя, выполните следующие действия.

1. В представлении «Серверы» дважды щелкните имя сервера: введите описание изображения здесь

2. Откроется страница конфигурации Tomcat следующим образом: введите описание изображения здесь

3. Обратите внимание, что номера портов указаны в таблице справа. Нажмите, чтобы редактировать, например: введите описание изображения здесь

4. Это изменит номер порта для HTTP с 8080 на 80. Нажмите Ctrl + S, чтобы сохранить изменения и перезапустить сервер. Мы можем определить изменение номера порта в представлении консоли: введите описание изображения здесь

Это все содержание взято из ссылки ниже, пожалуйста, обратитесь к этой ссылке для получения дополнительной информации спасибо. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse


4

Запуск команды ниже работал с. Попробовал изменить server.xmlи файл conf, но оба не работали.

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

3

На сервере Linux вы можете просто использовать эти команды для перенастройки Tomcat для прослушивания порта 80:

sed -i 's|port="8080"|port="80"|g' /etc/tomcat?/server.xml
sed -i 's|#AUTHBIND=no|AUTHBIND=yes|g' /etc/default/tomcat?
service tomcat8 restart

2

Если вы используете eclipse, и изменение server.xml не работает для вас, попробуйте следующую статью ... у них есть шаги для изменения порта, если вы используете IDE, как eclipse.


1

Просто зайдите в папку с конфетами Tomcat

откройте файл server.xml

Перейти к одному из соединительных узлов, которые выглядят следующим образом

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

Просто поменяй порт

сохранить и перезапустить Tomcat


1
Только на Windows, не так ли?
smonff

1

Вот шаги:

-> Следуйте по пути: {каталог tomcat> / conf -> Найдите эту строку:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

измените номер порта с "8080" на "80".

-> Сохранить файл.

-> Перезагрузите сервер :)


0

Не забудьте отредактировать файл. Откройте файл /etc/default/tomcat7и измените

#AUTHBIND=no

в

AUTHBIND=yes

затем перезагрузите.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.