2017-07-13 12 views
7

Tôi đang cố gắng triển khai một ứng dụng web đơn giản được viết bằng Play Framework trong dịch vụ web Scala đến Amazon.lỗi "máy chủ không được phép" khi triển khai ứng dụng khung chơi cho Amazon AWS với Boxfuse

Ứng dụng web đang chạy OK trong chế độ phát triển và phương thức sản xuất trong máy tính cục bộ của tôi, và tôi đã thay đổi cổng mặc định của nó đến 80.

tôi đã sử dụng Boxfuse để triển khai đến AWS như đề xuất.

đầu tiên tôi chạy "SBT quận" sau đó "boxfuse chạy -env = prod"

Mọi thứ diễn ra tốt đẹp như mong muốn. Hình ảnh được hợp nhất và đẩy lên AWS. AMI được tạo ra. Ví dụ đã được bắt đầu và ứng dụng của tôi đang chạy.

i-0f696ff22df4a2b71 => 2017/07/13 01: 28: 23,940 [info] play.api.Play - Ứng dụng bắt đầu (Prod)

Sau đó, đến thông báo lỗi:

CẢNH BÁO: Healthcheck (http://35.156.38.90/) trở 400 thay vì 200. Retrying cho 300 giây tiếp theo ...

i-0f696ff22df4a2b71 => 2017/07/13 01: 28: 24,977 [info] pcsAkkaHttpServer - Nghe cho HTTP trên /0.0.0.0:80

i-0f696ff22df4a2b71 => 2017/07/13 01: 28: 25,512 [cảnh báo] pfhAllowedHostsFilter - Host không được phép: 35.156.38.90

Các ví dụ đã được chấm dứt thử sau khi lặp đi lặp lại sau 3 phút. Nó đã đưa ra một cảnh báo như:

Đảm bảo ứng dụng của bạn phản ứng với một HTTP 200 tại/trên cổng 80

Nhưng tôi đã bảo đảm việc áp dụng đáp ứng trong máy tính cục bộ, và tôi đã cố gắng cả Windows và Ubuntu, tất cả đều hoạt động tốt.

Ngoài ra, chạy "chạy hộp thư" trên máy cục bộ, tôi có thể kết nối với nó bằng cách sử dụng "http://localhost", nhưng vẫn gặp lỗi.

Hy vọng người nào đó có kinh nghiệm có thể cho tôi một số đề xuất. Cảm ơn trước.

ps: không chắc chắn nếu có liên quan, tôi đã thêm các cài đặt này application.conf

http { 
     address = 0.0.0.0 
     port = 80 
    } 

Trả lời

3

Đánh giá từ các thông báo lỗi, có vẻ như vấn đề có thể liên quan đến play.filters.hosts.allowed không được thiết lập trong application.conf. Bộ lọc cho phép bạn định cấu hình máy chủ nào có thể truy cập ứng dụng của bạn. Thông tin chi tiết về bộ lọc Phát có sẵn here.

14

Như đã nêu trong Boxfuse Play Documentation:

Nếu ứng dụng của bạn sử dụng các host cho phép lọc bạn phải đảm bảo play.filters.hosts.allowed trong application.conf cho phép kết nối từ bất cứ nơi nào như bộ lọc này khác gây healthchecks ELB để Thất bại. Ví dụ:

play.filters.hosts { 
    allowed = ["."] 
} 

Thông tin thêm trong official Play documentation.

Các vấn đề liên quan