2009-06-18 36 views
5

Có một máy chủ ứng dụng như Apache Tomcat mà tôi có thể sử dụng với ngôn ngữ web như Lisp không?Phương ngữ Lisp có hoạt động với Apache Tomcat không?

Gần đây tôi đã chơi một chút với Arc/Anarki và Clojure. Nhưng những gì tôi thực sự bỏ lỡ là một cái gì đó như mod_arc hoặc mod_clojure cho Apache. Những gì tôi thực sự nhớ là tích hợp Apache tốt cho một ngôn ngữ web Lispy.

Cả Arc và Clojure đều sử dụng máy chủ web tích hợp sẵn mà bạn khởi chạy trong mã của mình. Tôi muốn tất cả các chức năng, khả năng phục hồi và khả năng mở rộng mà Apache httpd mang lại cho tôi. Có ai đang làm việc trên một mô-đun Apache cho Arc hoặc Clojure không? Có một ngôn ngữ như Lisp mà tôi có thể sử dụng với Apache?

Tôi đến từ một nền tảng trong PHP và Perl. Nhưng cũng có rất nhiều kinh nghiệm trong C và/bin/sh. Kể từ khi tôi bắt đầu viết các ứng dụng web, tôi đã sử dụng cgi-bin và stdin thành C nhị phân.

Trả lời

-1

Tại sao không sử dụng CGI?

3

Clojure là ngôn ngữ JVM, vì vậy bạn có thể thiết lập nó khá giống với bất kỳ ứng dụng Java nào khác.

6

Hunchentoot, một máy chủ web trong/cho Common Lisp, cũng có thể được sử dụng sau Apache, thông qua mod_lisp2.

+0

Đây là giải pháp chuẩn cho việc triển khai web Lisp; Hunchentoot chạy ứng dụng với Apache/Nginx/Lighttp/những gì bạn có trước xử lý các nội dung tĩnh/SSL certs. – Inaimathi

6

Sử dụng ClojureCompojure, bạn có thể tạo WAR-lưu trữ có thể được triển khai trong khá nhiều bất kỳ máy chủ web Java EE nào (Jetty, Tomcat, v.v.).

7

Bạn có thể thiết lập máy chủ Clojure/Java HTTP (Jetty, v.v.) chạy trên một số cổng, sau đó sử dụng mod_proxy của Apache để chuyển tiếp một số yêu cầu từ Apache đến Clojure trên cổng đó. Một cái gì đó như thế này trong configs Apache của bạn:

ProxyPass /static ! 
    ProxyPass /cgi-bin ! 
    ProxyPass/http://localhost:8080/ 
    ProxyPassReverse/http://localhost:8080/ 

Vì vậy, Apache sẽ gửi mọi yêu cầu để ứng dụng Clojure của bạn trên cổng 8080, ngoại trừ các yêu cầu để điều trong /static/cgi-bin, mà Apache sẽ xử lý riêng của mình.

+0

Cảm ơn câu trả lời đơn giản. Tôi có thể thử cái này như một thử nghiệm. – octopusgrabbus

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