我已经启动了一个 Compojure (Jetty) 服务器:
(defonce *server* (run-server {:host "localhost" :port 8080} "/*" (servlet routes)))
但 netstat 仍然显示它正在侦听 0.0.0.0:8080,即所有 IP。
传递给 run-server 以使其侦听单个 IP 的正确参数是什么?
我认为您将不得不修补 Compojure。:host它对您的参数没有任何作用。进行此更改server/jetty.clj似乎可行,但我尚未对其进行彻底测试。
(定义-创建-服务器
“构造一个 Jetty 服务器实例。”
[选项 servlet]
(让 [端口(选项:端口 80)
主机(选项:主机“0.0.0.0”)
连接器(doto (org.mortbay.jetty.bio.SocketConnector.)
(.setPort 端口)
(.setHost 主机))
服务器(doto(服务器。)
(.addConnector 连接器))
servlet(分区 2 servlet)]
(当(或(选项:ssl)(选项:ssl-port))
(添加 ssl 连接器!服务器选项))
(doseq [[url-or-path servlet] servlet]
(添加 servlet!服务器 url 或路径 servlet))
服务器))
user> (run-server {:port 12346})
2009-07-22 13:48:53.999::INFO: jetty-6.1.15
2009-07-22 13:48:54.002::INFO: Started SocketConnector@0.0.0.0:12346
nil
user> (run-server {:host "127.0.0.1" :port 12345})
2009-07-22 13:48:08.061::INFO: jetty-6.1.15
2009-07-22 13:48:08.129::INFO: Started SocketConnector@127.0.0.1:12345