Як змінити порт 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.
Маркус Пшайдт

1
Дивіться відповідь Rose для середовища Linux!
Марко

У цій відповіді відсутня інформація про / etc / authbind, див. Відповідь від Rose нижче
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 read + Execute на порту 80.

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

5. Перезапустіть tomcat:

sudo /etc/init.d/tomcat7 restart

1
Це працює. Люди з Linux, принаймні, працюють для мене з Ubuntu 14.04.2 LTS.
Родріго Гургель

3
Автонавірка - правильна відповідь. Але зауважте, що ви можете пропустити автоматичне підключення, якщо ви використовуєте 'sudo startup.sh', оскільки порт 80 буде наданий ескальованому користувачеві.
Marcio Jasinski

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

Яка версія Tomcat? На якій ОС ви працюєте?
Піонерське небо

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. Встановіть рекомендований (не обов’язковий) пакет автозв’язки з такою командою, як:

    sudo apt-get install authbind

  3. Увімкніть автоматичне зв’язування у файлі server.xml (у будь-якому /etc/tomcat6або /etc/tomcat7), коментуючи та встановивши рядок:

    AUTHBIND=yes

Всі три кроки потрібні.


5
Не працює для Tomcat (якщо встановлено zip / tar.gz) 13.10.
Горкаморка

4
Щоб змусити його працювати з zip / tar.gz, виконайте кроки 1 і 2 вище, додайте AUTHBIND = так до 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 ПЕРЕДАЧА -p tcp --dport 80 -j ПОВЕРХНЕНО - до порту 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
Дякую, це спрацювало чудово, я звик до центсів, тому це було мені корисно, де це не було проблемою для мене.
med116

1
Я щойно слідував за цим сьогодні 14.04, пакет 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і конф-файл, але обидва не працювали.

/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.