16

Tôi hơi bối rối về việc sử dụng tính dính của phiên trên Dịch vụ web của Amazon. Khi tôi triển khai ứng dụng web java của tôi bằng cách sử dụng cây đậu nành Amazon Elastic, tôi có thể chọn để kích hoạt tính dính của phiên và sau đó chỉ định một khoảng thời gian hết hạn cookie.Độ dính phiên trên Dịch vụ web của Amazon

Ứng dụng của tôi sử dụng cookie cho phiên (JSESSIONID) cũng như cho những thứ nhỏ khác. Hầu hết các trang web có thể truy cập chỉ sau khi đăng nhập (tôi sử dụng bảo mật mùa xuân để quản lý nó). Trang web sẽ chạy trên tối đa 25 phiên bản EC2 nhỏ.

Tôi có nên bật tính năng dính phiên không? Nếu tôi không kích hoạt nó, nó có nghĩa là tôi có thể được suddendly đăng xuất bởi vì cân bằng tải đưa tôi đến một máy chủ (không phải là máy chủ xác thực tôi)? Nếu tôi bật tính năng gắn bó phiên, tôi có bị đăng xuất khi máy chủ xác thực tôi bị tắt không? Về cơ bản, tại sao và khi nào tôi nên sử dụng phiên dính?

Cảm ơn bạn rất nhiều.

+0

phiên dính có thể ứng dụng trong nút js trên AWS ?? –

Trả lời

21

Nếu tôi không bật nó, có nghĩa là tôi có thể bị đăng xuất suddendly vì trình cân bằng tải đã đưa tôi đến máy chủ khác (không phải máy chủ đã xác thực tôi)?

Nếu tôi cho phép dính phiên, tôi thường xuyên bị thoát ra khi máy chủ chứng thực tôi bị đóng cửa?

Khi sử dụng đàn hồi Beanstalk với một webapp Java điển hình, tôi nghĩ rằng bạn chắc chắn sẽ muốn kích hoạt phiên dính. Nếu không, mỗi yêu cầu HTTP từ trình duyệt của người dùng có thể được định tuyến đến một máy chủ khác.

Để khắc phục sự cố phiên của người dùng bị hủy khi máy chủ bị "kẹt" bị tắt, bạn cần phải xem xét Tomcat session replication. Đây không phải là một cái gì đó mà cây đậu đàn hồi đi kèm với ra khỏi hộp không may, do đó, để thiết lập phiên sao chép, bạn sẽ phải tạo một tùy chỉnh Elastic Beanstalk AMI cho ứng dụng của bạn để sử dụng. Ngoài ra, bạn sẽ phải sử dụng thực hiện sao chép phiên Tomcat that does not rely on multicast, vì đa phương tiện không có sẵn trên AWS hoặc bất kỳ môi trường đám mây nào khác mà tôi biết. Ví dụ về triển khai không dựa trên multicast sẽ là một ứng dụng sử dụng cơ sở dữ liệu (như Amazon RDS) hoặc máy chủ ghi nhớ (chẳng hạn như Amazon Elastic Cache) để làm cho các phiên có sẵn trên nhiều phiên bản Tomcat.

Cũng lưu ý rằng giao diện người dùng Beanstalk Elastic chỉ cho phép bạn bật cookie HTTP được tạo cân bằng tải. Tuy nhiên sau khi Elastic Beanstalk tạo ra bộ cân bằng tải, bạn có thể vào bảng điều khiển EC2 và chỉnh sửa cài đặt của bộ cân bằng tải để chuyển nó sang các cookie HTTP do ứng dụng tạo ra, và sau đó yêu cầu nó sử dụng cookie "JSESSIONID".

+0

Cảm ơn bạn rất nhiều vì đã trả lời đầy đủ, @mbaird. Tôi đã cấu hình sao chép phiên trong Tomcat bằng cách sử dụng một MySQL DB. Tôi đã làm theo hướng dẫn này: http://www.intelligrape.com/blog/2010/07/21/tomcat-6-session-persistence-through-jdbcstore/. Nó hoạt động tốt khi có một cá thể EC2 duy nhất. Khi có hai (hoặc nhiều hơn) nó đi trong một vòng lặp chuyển hướng khi đăng nhập. Nó 302 chuyển hướng đến trang chủ một lần nữa và một lần nữa. Mỗi khi nó được chuyển hướng, máy chủ sẽ đặt một cookie với một JSESSIONID khác.Bạn có bất kỳ ý tưởng tại sao nó đang xảy ra? Cảm ơn bạn! – satoshi

+3

Cấu hình 'memcached-session-manager' để làm việc với Amazon ElastiCache đã giải quyết được vấn đề .. Cảm ơn! – satoshi

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