Làm cách nào để thay đổi cổng Tomcat từ 8080 thành 80?


Câu trả lời:


215

1) Chuyển đến confthư mục trong thư mục cài đặt tomcat

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

2) Chỉnh sửa thẻ sau trong server.xml tệp

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

3) Thay đổi port=8080giá trị thànhport=80

4) Lưu tập tin.

5) Dừng Tomcat của bạn và khởi động lại nó.


14
Ngoài ra, hãy chắc chắn dừng lại và khởi động lại Tomcat. Chỉ cần nói. :)
AllieCat

3
Tôi đã làm điều này và tôi nhận được một lỗi 404! Có điều gì khác tôi nên làm không?
Sao Thổ

15
Trong etc/default/tomcat7cài đặt AUTHBIND=yes, để tránh lỗi
Perm PermDenied

1
Xem câu trả lời của Rose cho môi trường Linux!
Marko

Câu trả lời này thiếu thông tin / etc / authbind, xem câu trả lời từ Rose bên dưới
jorfus

119

Ubuntu 14.04 LTS, trong Amazon EC2. Các bước sau đã giải quyết vấn đề này cho tôi:

1. Chỉnh sửa server.xml và thay đổi port = "8080" thành "80"

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

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

2. Chỉnh sửa tệp tomcat7 (nếu tệp không được tạo thì bạn cần tạo tệp đó)

sudo vi /etc/default/tomcat7

bỏ ghi chú và thay đổi # AUTHBIND = không thành có

3. Cài đặt tự động

sudo apt-get install authbind

4. Chạy các lệnh sau để cung cấp tomcat7 đọc + thực thi trên cổng 80.

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

5. Khởi động lại tomcat:

sudo /etc/init.d/tomcat7 restart

1
Đó là một trong những hoạt động. Người Linux, ít nhất là làm việc với tôi với Ubuntu 14.04.2 LTS.
Rodrigo Gurgel

3
Autobind là câu trả lời chính xác. Nhưng lưu ý rằng bạn có thể bỏ qua autobind trong trường hợp bạn đang sử dụng 'sudo startup.sh' vì cổng 80 sẽ được cấp cho người dùng leo thang.
Marcio Jasinski

1
Cảm ơn!! Tôi biết về việc bật authbind trong cấu hình máy chủ nhưng không biết tôi phải tạo một tệp trong authbind cho cổng đã đăng ký! Tôi ước OP đã thay đổi giải pháp được chấp nhận cho câu trả lời này! (Tôi thấy rằng bạn đã trễ gần 3 năm khi trả lời: P)
Fr0zenFyr 18/03/2017

1
Nó hoạt động với Tomcat 9 trên Lubfox 18.0.4, không cần cài đặt authbind, chỉ thêm cài đặt.
Marco Sulla

107

Trên Linux dựa trên Debian (bao gồm Ubuntu), bạn cũng phải truy cập /etc/default/tomcat7, bỏ ghi chú #AUTHBIND=nodòng và đặt giá trị của nó thành 'có', để cho máy chủ liên kết trên một cổng đặc quyền.


2
Xin chào, tôi không có tập tin cụ thể đó
nmkyuppie

Phiên bản nào của tomcat? Bạn đang dùng hệ điều hành nào?
Bầu trời tiên phong

7
Không hoạt động cho Tomcat nếu được cài đặt bởi zip / tar.gz, vì chúng không tạo tệp trong / etc / defaults /.
Gorkamorka

9
Đường dẫn ở trên phải là: / etc / default / tomcat7 (lưu ý thiếu 's' theo mặc định)
Tristan Reid

1
Tương đương với Tomcat 9 là gì?
katu

29

Trên các hệ thống Ubuntu và Debian, có một số bước cần thiết:

  1. Trong server.xml, thay đổi dòng <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>để có port="80".

  2. Cài đặt gói authbind được đề xuất (không bắt buộc), với lệnh như:

    sudo apt-get install authbind

  3. Bật authbind trong tệp server.xml (bằng một trong hai /etc/tomcat6hoặc /etc/tomcat7) bằng cách bỏ ghi chú và đặt dòng như:

    AUTHBIND=yes

Tất cả ba bước là cần thiết.


5
Không hoạt động cho Tomcat (nếu được cài đặt bởi zip / tar.gz) trong 13.10.
Gorkamorka

4
Để làm cho nó hoạt động từ zip / tar.gz, hãy thực hiện các bước 1 và 2 ở trên, thêm AUTHBIND = yes vào bin / setenv.sh (tạo nếu không có) và bắt đầu từ root. Hoạt động với LTS 12.04, cũng nên hoạt động w / 13.10.
karl

Trong trường hợp của tôi, nó không thành công (không có thông báo lỗi trong catalina.out) mà không có gói authbind, đã hoạt động sau khi cài đặt nó
golimar

Bạn có thể vui lòng chỉ vào tài liệu về AUTHBIND = có không? Tôi không tìm thấy nó ở đâu cả.
ARX

Tôi không thể tìm thấy đề cập đến cài đặt AUTHBIND như một phần của cấu hình thành phần máy chủ trong tài liệu TOMCAT. Lạ thật.
Peter N. Steinmetz

22

Tôi đã thử thay đổi cổng từ 8080sang 80trong server.xmlnhưng nó không hoạt động với tôi. Sau đó, tôi tìm thấy giải pháp thay thế, cập nhật cái iptablesmà tôi chắc chắn có ảnh hưởng đến hiệu suất.

Tôi sử dụng các lệnh sau:

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-advified.html#port80


Làm thế nào để hoàn nguyên điều này?
SAI GIRI CHary AOUSULA

Chạy lệnh sau để xóa định tuyến: iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
casol

17

Vì các câu trả lời trước không hoạt động tốt (nó tốt, nhưng chưa đủ) đối với tôi trên Máy chủ Ubuntu 14.04, tôi đề cập đến các đề xuất này (đây là một trích dẫn).

Chỉnh sửa: lưu ý rằng như @ jason-faust đã đề cập đến nó trong các bình luận, vào ngày 14.04, authbindgói đi kèm với nó hiện hỗ trợ IPv6, do đó, điều thích hợp hơn nữa là không cần thiết nữa .

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 "$@"

Nếu bạn đã có một setenv.shtập tin /usr/share/tomcat7/binvới CATALINA_OPTS, bạn phải sử dụng:

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

Bây giờ bạn có thể thay đổi cổng thành 80như đã nói trong các câu trả lời khác.


2
Tôi sẽ thêm rằng tệp startup.sh được đặt tại: /usr/share/tomcat7/bin/startup.sh - Nó không hoàn toàn rõ ràng đối với người mới;)
ConMan

@ConMan đã cập nhật đường dẫn, đó là một ý tưởng tuyệt vời để lưu các tìm kiếm khác. Tôi thừa nhận rằng việc biết nơi này không rõ ràng ngay từ đầu.
smonff

1
Cảm ơn, điều này đã làm việc rất tốt, tôi đã quen với centos, vì vậy điều này hữu ích với tôi, nơi đây không phải là vấn đề đối với tôi.
med116

1
Tôi vừa mới theo dõi ngày hôm nay vào ngày 14.04, gói authbind đi kèm với nó hiện hỗ trợ IPv6, do đó, thứ IPv4 ưa thích không còn cần thiết nữa.
Jason Faust

Tôi cũng đã làm: chmod 755 /usr/share/tomcat7/bin/setenv.sh
Casey Harrils

5

Trên linux hiện đại, cách tiếp cận tốt nhất (đối với tôi) là sử dụng xinetd:

1) tạo /etc/xinet.d/tomcat-http

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

2) tạo /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 trên

4) /etc/init.d/xinetd bắt đầu


Cách tiếp cận khác là biên dịch và sử dụng jsvc nhưng xinetd chắc chắn dễ dàng hơn
cgdave

5

Nếu ai đó đang tìm kiếm, làm thế nào để thay đổi số cổng tomcat trong người dùng IDE Eclipse sau đây là các bước.

1.Trong chế độ xem Máy chủ, nhấp đúp chuột vào tên máy chủ: nhập mô tả hình ảnh ở đây

2. Điều đó sẽ mở một trang cấu hình cho Tomcat như sau: nhập mô tả hình ảnh ở đây

3. Chú ý các số cổng được hiển thị trong bảng bên phải. Nhấn vào đây để chỉnh sửa, ví dụ: nhập mô tả hình ảnh ở đây

4. Điều đó sẽ thay đổi số cổng cho HTTP từ 8080 thành 80. Nhấn Ctrl + S để lưu thay đổi và khởi động lại máy chủ. Chúng tôi có thể phát hiện sự thay đổi số cổng trong giao diện Console: nhập mô tả hình ảnh ở đây

Tất cả nội dung này được lấy từ liên kết dưới đây, vui lòng tham khảo liên kết đó để biết thêm thông tin cảm ơn. http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse


4

Chạy lệnh dưới đây làm việc với. Đã thử thay đổi server.xmlvà tập tin conf nhưng cả hai đều không hoạt động.

/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

Trên máy chủ linux, bạn chỉ cần sử dụng các lệnh này để cấu hình lại Tomcat để nghe trên cổng 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

nếu bạn đang sử dụng nhật thực và sửa đổi server.xml không phù hợp với bạn thì hãy thử theo dõi bài viết này .. họ có các bước để sửa đổi cổng nếu bạn đang sử dụng IDE như nhật thực.


1

Chỉ cần thư mục goto conf của tomcat

mở tệp server.xml

Goto một trong các nút kết nối trông giống như sau

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

Đơn giản chỉ cần thay đổi cổng

lưu và khởi động lại tomcat


1
Trên Windows chỉ có nó không?
smonff

1

Dưới đây là các bước:

-> Thực hiện theo đường dẫn: {thư mục tomcat> / conf -> Tìm dòng này:

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

thay đổi số cổng từ "8080" thành "80".

-> Lưu tệp.

-> Khởi động lại máy chủ :)


0

Đừng quên chỉnh sửa tập tin. Mở tệp /etc/default/tomcat7và thay đổi

#AUTHBIND=no

đến

AUTHBIND=yes

sau đó khởi động lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.