我用ubuntu和ngingx建立了一个家庭服务器,我可以提供静态文件。现在我想测试一些clojure文件,但我不清楚如何做到这一点。对于php来说这似乎很容易,例如in this tutorial他为php文件添加了一个位置。这就是我需要做的,只需指出Clojure文件在配置文件中的位置吗?
我有Dmitry Sotnikov的 Web开发与Clojure ,他谈到了部署,但没有具体关于nginx。
你能指出我正确的方向,我可以找到有关这方面的文件吗?
答案 0 :(得分:8)
请尝试Nginx-Clojure模块。您可以在没有任何Java Web服务器的情况下使用Nginx运行clojure Ring处理程序,例如。码头。 它还要快得多。可以找到基准HERE。
答案 1 :(得分:5)
考虑下一个设置:
nginx -> ring server (jetty)
您需要在某个端口(例如8080)上启动lein ring server
(使用lein-ring插件)。 Nginx将收听80端口并将请求转发至8080。
这是一个示例nginx配置:
upstream ring {
server 127.0.0.1:8080 fail_timeout=0;
}
server {
root <path-to-public-dir>;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file
try_files $uri $uri/ @ring;
}
location @ring {
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_pass http://ring;
}
location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ {
expires max;
add_header Cache-Control public;
}
}
将 path-to-public-dir 更改为静态文件所在的目录( resources / public )。 Nginx将服务器静态文件(如果找到文件)并将其他请求转发给响铃服务器。