Ubuntu 如何使用nginx为Clojure页面提供服务

Ubuntu 如何使用nginx为Clojure页面提供服务,ubuntu,nginx,clojure,Ubuntu,Nginx,Clojure,我用ubuntu和ngingx建立了一个家庭服务器,我可以提供静态文件。现在我想测试一些clojure文件,但我不清楚如何做到这一点。对于php来说,这似乎非常简单,例如,他为php文件添加了一个位置。这就是我需要做的,只是指出Clojure文件在配置文件中的位置 我有Dmitry Sotnikov与Clojure的Web开发,他谈到了部署,但没有具体谈到nginx 你能给我指出正确的方向吗?我可以在哪里找到关于这个的文档?考虑下一个设置: nginx -> ring server (je

我用ubuntu和ngingx建立了一个家庭服务器,我可以提供静态文件。现在我想测试一些clojure文件,但我不清楚如何做到这一点。对于php来说,这似乎非常简单,例如,他为php文件添加了一个位置。这就是我需要做的,只是指出Clojure文件在配置文件中的位置

我有Dmitry Sotnikov与Clojure的Web开发,他谈到了部署,但没有具体谈到nginx

你能给我指出正确的方向吗?我可以在哪里找到关于这个的文档?

考虑下一个设置:

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路由-另请阅读: