Ubuntu 如何使用nginx为Clojure页面提供服务
我用ubuntu和ngingx建立了一个家庭服务器,我可以提供静态文件。现在我想测试一些clojure文件,但我不清楚如何做到这一点。对于php来说,这似乎非常简单,例如,他为php文件添加了一个位置。这就是我需要做的,只是指出Clojure文件在配置文件中的位置 我有Dmitry Sotnikov与Clojure的Web开发,他谈到了部署,但没有具体谈到nginx 你能给我指出正确的方向吗?我可以在哪里找到关于这个的文档?考虑下一个设置:Ubuntu 如何使用nginx为Clojure页面提供服务,ubuntu,nginx,clojure,Ubuntu,Nginx,Clojure,我用ubuntu和ngingx建立了一个家庭服务器,我可以提供静态文件。现在我想测试一些clojure文件,但我不清楚如何做到这一点。对于php来说,这似乎非常简单,例如,他为php文件添加了一个位置。这就是我需要做的,只是指出Clojure文件在配置文件中的位置 我有Dmitry Sotnikov与Clojure的Web开发,他谈到了部署,但没有具体谈到nginx 你能给我指出正确的方向吗?我可以在哪里找到关于这个的文档?考虑下一个设置: nginx -> ring server (je
nginx -> ring server (jetty)
您需要在某个端口(比如8080)上启动leinringserver
(使用插件)。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;
}
}
上游环{
服务器127.0.0.1:8080失败\u超时=0;
}
服务器{
根;
#使站点可以从http://localhost/
服务器名称localhost;
地点/{
#首次尝试将请求用作文件
试试_文件$uri$uri/@ring;
}
位置@环{
代理_重定向关闭;
代理缓冲关闭;
代理设置头主机$http\U主机;
代理通行证http://ring;
}
位置^/(资产|图像| javascripts |样式表| swfs |系统)/{
最大值;
添加_头缓存控制公共;
}
}
将路径更改为public dir到静态文件所在的目录(resources/public)。
Nginx将为静态文件(如果找到文件)提供服务器,并将其他请求转发给环形服务器。请尝试模块。您可以使用Nginx运行clojure环处理程序,而无需任何javaweb服务器,例如Jetty。
而且速度非常快。可以找到基准
Lein不应从生产中运行。使用lein uberjar创建服务器jar。我用lein创建了一个名为
guestbook
的项目,我做了lein ring server
,它运行在localhost:3000
上,我在浏览器中看到了“Hello World”。我将conf文件从您的“8080”更改为“3000”(正确吗?),但现在我不知道需要将项目文件放在哪里。此时,它们位于~/guestbook
中。你能帮忙吗?很好,现在更改nginx配置:root/home/zeynel/guestbook/resources/public
(确保文件夹存在)并访问。这应该会击中你的戒指服务器。好的,但我仍然感到困惑。如果我更改root~/guestbook/resources/public
我应该把html文件放在哪里,比如index.html?如果它是一个静态页面,你可以把它放在公用文件夹并请求/index.html。对于动态响应,您需要了解compojure路由-另请阅读: