>

Http에서 Https로 트래픽을 전달해야합니다. SSL은로드 밸런서에 있으므로 plug_ssl 를 사용하여 헤더를 전달하기 만하면됩니다.  내 prod.exs 에서  추가했습니다 :

config :web, Web.Endpoint,
  force_ssl: [rewrite_on: [:x_forwarded_proto]]

prod.exs 에서

  config :web, Web.Endpoint 에서 다른 모든 것을 제거하십시오.  

작동하지 않습니다.

내가 뭘 잘못하고 있니?

와이즈 비즈를 넣어야합니까?  내 force_ssl 에서 ?

미리 감사합니다.

router

  • 답변 # 1

    force_ssl 를 활성화해야 할 것입니다  상태 확인에 사용되지 않는 엔드 포인트 또는 이와 관련된 것으로 만 연결하십시오.

    GKE의 k8s Ingress와 비슷한 문제가 있었고 해결책은 force_ssl 를 넣는 것이 었습니다  내 응용 프로그램 경로에 대해서만라우터에서  (내 건강 점검 경로로 구성된) HTTP를 사용합니다.

    /healthz 의 예 :

    config/prod.exs
    
    

    여기 # Tells if we need to enforce SSL for our endpoints. # Only production/staging should enforce config :my_app, force_ssl: true config :my_app, MyAppWeb.Endpoint, load_from_system_env: true, url: [host: "${APP_HOST}", port: 80], server: true, http: [port: "${PORT}"], url: [scheme: "https", host: "${APP_HOST}", port: 443], secret_key_base: "${SECRET_KEY_BASE}" 의 예가 있습니다. :

    lib/my_app_web/router.ex
    
    

    디버그하기가 약간 까다 롭다. defmodule MyAppWeb.Router do use MyAppWeb, :router # This route will NOT enforce SSL get("/healthz", MyAppWeb.HealthCheckController, :show) pipeline :api do plug(:accepts, ["json"]) if Application.get_env(:my_app, :force_ssl) do plug(Plug.SSL, rewrite_on: [:x_forwarded_proto], host: nil) end end scope "/", MyAppWeb do pipe_through(:api) # My routes will go here, and will be enforced if the # application flag `force_ssl` is enabled. end end 를 사용하는 경우 kubernetes 를 사용해보십시오 테스트를 수행하는 동안 요청 및 응답에 대한 헤더를 항상 확인하십시오.

  • 답변 # 2

    보통 Healthchecker는 앱이있는 도메인이 아닌 로컬 네트워크를 사용하여 서버를 직접 호출합니다. 이 방법으로 지역 주소를 kubectl describe ingress YOUR-INGRESS-HERE 에 넣을 수 있습니다  옵션.

    이것이 내가 한 일입니다 :

    exclude
    
    

    와이즈 비즈   config :my_app, MyApp.Endpoint, force_ssl: [rewrite_on: [:x_forwarded_proto], exclude: ["localhost", "${IP_ADDRESS}"]], 를 사용하여 환경 변수 (배포 유형에 따라 배포 유형에 따라 다름)에서 얻었습니다. . 그러나 IP_ADDRESS 를 사용하지 않으면  다음과 같은 방법으로 환경 변수를 얻을 수 있습니다.

    distillery
    
    
    distillery

관련 자료

  • 이전 php - 내 번호로 Nexmo 전달 메시지
  • 다음 javascript - NextJS&Express와 서비스 작업자에게 혼동