我已经启动了一个 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