Apache Tomcat là một container servlet Java mã nguồn mở, thực thi các công nghệ Java Servlet, JavaServer Pages (JSP), Java Expression Language (EL), và WebSocket. Nó được sử dụng rộng rãi để triển khai các ứng dụng web dựa trên Java, đặc biệt là những ứng dụng được phát triển bằng framework Spring Boot.
Tại Sao Nên Sử Dụng Tomcat Với Spring Boot?
Tính Tương Thích:
Mặc định, Spring Boot đi kèm với một máy chủ Tomcat nhúng, cho phép các nhà phát triển chạy các ứng dụng Spring Boot mà không cần máy chủ bên ngoài. Tuy nhiên, trong môi trường sản xuất, việc triển khai các ứng dụng Spring Boot trên máy chủ Tomcat bên ngoài là điều phổ biến nhờ những lợi ích về khả năng mở rộng, an ninh và hoạt động.
Triển Khai Dưới Dạng WAR:
Các ứng dụng Spring Boot có thể được đóng gói dưới dạng .jar (tập tin thực thi với máy chủ nhúng) hoặc .war (để triển khai trên các container servlet bên ngoài như Tomcat). Khi sử dụng đóng gói .war, Tomcat có thể được dùng để lưu trữ ứng dụng Spring Boot.
Các Bước Triển Khai Ứng Dụng Spring Boot Trên Tomcat
1. Cài Đặt Tomcat:
Tải xuống Apache Tomcat từ trang chính thức: Apache Tomcat.
2. Chuyển Đổi Ứng Dụng Spring Boot Thành WAR:
Các ứng dụng Spring Boot được đóng gói dưới dạng tệp .jar theo mặc định, nhưng để triển khai chúng trên máy chủ Tomcat bên ngoài, bạn cần đóng gói chúng thành tệp .war.
Để thực hiện điều này:
Cập nhật tệp pom.xml cho dự án sử dụng Maven để đóng gói thành WAR bằng cách thay đổi phần tử đóng gói thành: war. Đảm bảo lớp ứng dụng chính của bạn mở rộng SpringBootServletInitializer để kích hoạt khả năng triển khai dưới dạng WAR:
java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
3. Xây Dựng Tệp WAR:
Sử dụng Maven (hoặc Gradle nếu bạn sử dụng Gradle) để đóng gói ứng dụng:
bash
mvn clean package
Điều này sẽ tạo ra tệp .war trong thư mục target
.
4. Cấu Hình Tomcat Để Triển Khai:
Đặt tệp .war vào thư mục webapps
của cài đặt Tomcat. Ngoài ra, bạn có thể triển khai WAR qua Tomcat Manager (nếu đã cài đặt và cấu hình). Truy cập Tomcat Manager tại http://localhost:8080/manager (hoặc cổng tùy chỉnh của bạn), đăng nhập và sử dụng phần "Deploy" để tải lên tệp WAR.
5. Truy Cập Ứng Dụng:
Khi đã triển khai, Tomcat sẽ tự động trích xuất và chạy tệp WAR. Bạn có thể truy cập ứng dụng đã triển khai ở địa chỉ http://localhost:8080/{app-name}, trong đó {app-name} là tên của tệp .war của bạn.
Mẹo Cấu Hình:
1. Thay Đổi Cổng Mặc Định:
Nếu bạn muốn chạy nhiều dịch vụ trên cùng một máy, bạn có thể cần thay đổi số cổng của Tomcat. Mở tệp conf/server.xml
và xác định phần tử <Connector>
:
xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Thay đổi giá trị cổng thành số bạn mong muốn.
2. Kích Hoạt Tomcat Manager:
Tomcat Manager là một công cụ web hữu ích để quản lý các ứng dụng đã triển khai trên Tomcat. Tuy nhiên, nó thường bị tắt theo mặc định. Để kích hoạt, bạn cần chỉnh sửa tệp tomcat-users.xml
(có trong thư mục conf/
) và thêm một người dùng với vai trò quản lý:
xml
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="manager-gui"/>
3. Logging:
Sử dụng hệ thống logging của Tomcat để theo dõi lỗi và hành vi của ứng dụng. Các log có thể tìm thấy trong thư mục logs
trong thư mục cài đặt Tomcat.
4. Đường Dẫn Context:
Để sửa đổi đường dẫn context (URL mà ứng dụng có thể truy cập), bạn có thể đổi tên tệp WAR (ví dụ: đổi tên myapp.war thành ROOT.war để nó có thể truy cập tại /) hoặc chỉnh sửa tệp conf/server.xml
.
Những Điểm Chính Cần Nhớ:
Tomcat là một container servlet nhẹ được sử dụng để chạy các ứng dụng web Java. Bạn có thể triển khai các ứng dụng Spring Boot trên Tomcat bằng cách đóng gói chúng thành các tệp WAR. Đảm bảo cấu hình đúng trong pom.xml và mở rộng SpringBootServletInitializer để làm cho ứng dụng có thể triển khai trên Tomcat. Quản lý và theo dõi ứng dụng của bạn bằng cách sử dụng giao diện của Tomcat Manager hoặc các log.
source: viblo