Compojure가 단일 IP를 수신하도록 하려면 어떻게 해야 하나요?

StackOverflow https://stackoverflow.com/questions/1166028

  •  19-09-2019
  •  | 
  •  

문제

다음을 사용하여 Compojure(Jetty) 서버를 시작했습니다.

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

하지만 netstat에서는 여전히 0.0.0.0:8080을 수신하고 있음을 보여줍니다. 즉,모든 IP.

단일 IP에서 수신 대기하도록 실행 서버에 전달할 올바른 매개 변수는 무엇입니까?

도움이 되었습니까?

해결책

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 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top