2009-07-22 6 views
6

に耳を傾ける作ります:どのように私はCompojureは私がCompojure(突堤)サーバーを開始している単一IP

(defonce *server* (run-server {:host "localhost" :port 8080} "/*" (servlet routes))) 

が、netstatコマンドは、まだそれが0.0.0.0:8080、すなわち上のすべてのIPを聴いていることを示しています。

単一のIPでリッスンするために実行サーバーに渡す正しいパラメータは何ですか?

答えて

7

あなたはCompojureにパッチを当てなければならないと思います。 :hostパラメータで何もしていません。この変更をserver/jetty.cljにすることはうまくいくようですが、徹底的にテストしていません。

(defn- create-server 
    "Construct a Jetty Server instance." 
    [options servlets] 
    (let [port  (options :port 80) 
     host  (options :host "0.0.0.0") 
     connector (doto (org.mortbay.jetty.bio.SocketConnector.) 
        (.setPort port) 
        (.setHost host)) 
     server (doto (Server.) 
        (.addConnector connector)) 
     servlets (partition 2 servlets)] 
    (when (or (options :ssl) (options :ssl-port)) 
     (add-ssl-connector! server options)) 
    (doseq [[url-or-path servlet] servlets] 
     (add-servlet! server url-or-path servlet)) 
    server))
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 [email protected]: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 [email protected]:12345 
+3

それだけで動作するようにこれは今、compojureにロールバックされました - オープンソースをイェーイ! – l0st3d

関連する問題