Wie mache ich Compojure auf eine einzige IP hören
Frage
Ich habe eine Compojure (Jetty) Server mit gestartet:
(defonce *server* (run-server {:host "localhost" :port 8080} "/*" (servlet routes)))
aber netstat zeigt immer noch, dass es auf 0.0.0.0:8080 hört, das heißt alle IPs.
Was ist der richtige Parameter Lauf Server zu übergeben, um es auf einer einzigen IP hören zu machen?
Lösung
Ich denke, du wirst Compojure haben zu patchen. Es ist nicht mit Ihrem :host
Parameter etwas zu tun. Durch diese Änderung zu server/jetty.clj
scheint zu funktionieren, aber ich habe es nicht gründlich getestet.
(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 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow