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?

War es hilfreich?

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
scroll top