2013-08-24 24 views
5

Chúng tôi có khung công tác web dựa trên FastCGI mà chúng tôi sử dụng trong nội bộ cho một số ứng dụng quan trọng của sứ mệnh. Do đó, việc chuyển sang khung PSGI-khiếu nại hiện tại không thực tế lắm. Chúng tôi đã chuyển thành công khung công tác của chúng tôi từ CGI.pm cũ sang trình xử lý Plack.Tôi có cần phải chuyển đổi các quy tắc mod_rewrite thành các quy tắc Plack :: Middleware :: Rewrite nếu khung web của tôi muốn hỗ trợ PSGI không?

Tuy nhiên, có khá nhiều logic định tuyến, dưới dạng các quy tắc mod_rewrite, bên trong tệp cấu hình của Apache. Nếu chúng tôi triển khai các ứng dụng sử dụng khung tương thích PSGI mới của chúng tôi bằng cách sử dụng Plack :: Handler :: FCGI qua proxy ngược trong Apache, tôi cho rằng các quy tắc mod_rewrite có thể tiếp tục hoạt động ở đó, với một số chỉnh sửa. (Lập kế hoạch để làm điều này, nhưng chưa thử).

Tuy nhiên, đọc về Plack :: Middleware :: Rewrite làm thay thế cho mod_rewrite đã hấp dẫn tôi.

Tôi có cần phải chuyển đổi các quy tắc mod_rewrite thành Plack :: Middleware :: Rewrite rules và chuyển tất cả logic ứng dụng đầy đủ sang Perl để có được toàn bộ lợi ích của PSGI không?

Tôi nghĩ câu trả lời là có, nhưng tôi không có kinh nghiệm triển khai các ứng dụng PSGI vì vậy tôi sẽ đánh giá cao nếu một số có thể chia sẻ kinh nghiệm của họ để đảm bảo rằng tôi đang đi đúng hướng.

Sub-câu hỏi là ý tưởng của PSGI tất cả về việc cho phép các máy chủ web làm càng ít (và càng nhanh) càng tốt và ủy thác tất cả những thứ khác đến các máy chủ ứng dụng (middleware)? **

+0

Tôi nghĩ rằng câu hỏi này không thực sự là một câu hỏi sysadmin vì nó liên quan đến việc chuyển đổi các quy tắc mod_rewrite apache thành mã Perl bên trong một khuôn khổ web tuân thủ PSGI. Tôi yêu cầu điều này từ quan điểm của một người triển khai khung công tác. – GeneQ

+1

Trả lời cho câu hỏi con của bạn: PSGI giúp bạn dễ dàng viết ứng dụng web không phụ thuộc vào một máy chủ web cụ thể. Vì vậy, nếu bạn cần điều này, sau đó cố gắng làm càng nhiều càng tốt trong PSGI. –

Trả lời

3

Lợi ích của PSGI là sự linh hoạt trong triển khai. Miễn là bạn có các quy tắc trong mod_rewrite, bạn bị mắc kẹt với Apache và, do đó, không nhận được toàn bộ lợi ích của PSGI.

Tuy nhiên, miễn là bạn hài lòng với Apache, tôi không thấy động lực mạnh mẽ để viết lại tất cả các quy tắc của bạn. Nếu mod_rewrite đang khiến bạn đau đầu, hãy tiếp tục.

Cũng xem xét đưa logic định tuyến của bạn trong mã ứng dụng chính của bạn với một cái gì đó giống như Router::Simple hoặc Path::Router

BTW, trừ khi bạn đang thực sự gắn liền với FastCGI, có lẽ không có lý do để sử dụng Plack :: Handler :: FCGI. Giữ Apache làm proxy ngược và ứng dụng của bạn chạy trong Starlet hoặc một trong các máy chủ web Plack khác.

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