1. Các phương pháp để chạy Play Framework
- Play Framework là một web application framework được viết bằng ngôn ngữ Scala xây dụng theo kiến trúc MVC (cho viết web ) và chạy trên nền tảng JVM (Java Virtual Machine)
- Vì Play được thiết kế để chạy trên JVM nên việc chạy một ứng dụng Play khá giống với cách chạy các ứng dụng web viết bằng Java khác:
- Hiện tại để chạy một ứng dụng Play ta có những phương pháp sau:
- Sử dụng JBoss Netty web server
- Đóng gói thành file War để triển khai như một ứng dụng Java EE
- Bài viết này sẽ hướng dẫn các bạn cài đặt Nginx làm front-end HTTP server cho ứng dụng Play Framework (chạy JBoss Netty web server)
2. Cài đặt Nginx làm front-end HTTP server cho Play Framework
2.1. Tại sao không dùng trực tiếp JBoss Netty web server làm front-end
- Nginx có thể làm proxy server => tăng tốc độ phản hồi của những request từ người dùng
- Nginx cho tốc độ phản hồi từ những file tĩnh tốt hơn
- Nginx hỗ trợ cân bằng tải (trong trường hợp website có lượng người dùng lớn)
- Và quan trọng nhất là: Nginx hỗ trợ tốt việc streaming các file video, audio trong khi với Netty người lập trình phải tự cài đặt streaming trên ứng dụng của mình (streaming video, audio là bắt buộc phải có nếu muốn chạy video, audio trên các thiết bị di động chạy iOS do những thiết bị này bị hạn chế về dung lượng lưu trữ)
2.2. Cài đặt
Bước 1: Cài đặt Nginx
Bước 2: Cấu hình file Nginx
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; #Định nghĩa danh sách các server chạy Play upstream my-backend { server 127.0.0.1:9000; } server { listen 80; server_name www.example.com example.com; # Điều hướng các đến trang web của mình về server Play location / { proxy_pass http://my-backend; } # Điều hướng các file tĩnh cho Nginx xử lý location /assets/ { alias /var/www/public; #Địa chỉ thư mục chứa các file tĩnh autoindex off; } } }
Bước 3: Khởi động Play
Khởi động ứng dụng Play bằng các câu lệnh play => chạy start hoặc run (Lưu ý là không chạy ứng dụng Play ở cổng 80, vì cổng 80 đang đang được sử dụng bởi Nginx)Bước 4: Khởi động lại Nginx
service nginx restart
Bình luận