홈>
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
-
답변 # 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
관련 자료
- .htaccess - Http 및 www 하위 도메인 트래픽을 https로 자동 리디렉션
- url rewriting - IIS 10 URL 재 작성 http 트래픽을 https 리디렉션으로 재 작성하지 않음
- .htaccess - 모든 트래픽 (http 및 https)을 다른 도메인의 루트로 리디렉션
- networking - 프록시 서버를 통해 모든 웹 트래픽 (https 포함) 리디렉션
- Azure 끝점 (DNS/고정 IP)에서 호스팅되는 트래픽을 다른 외부 IP 주소로 리디렉션하는 방법
- amazon web services - elb에 대한 HTTPS 트래픽을 종료하고 컨테이너가 HTTP를 실행하는 방법 (원거리)
- ssl - nginx-ingress-controller의 기본 백엔드에서 HTTPS 리디렉션이 작동하지 않습니다
- windows - openVPN 터널 "분할 터널"을 통해 특정 트래픽을 어떻게 리디렉션합니까?
- .htaccess - 아파치 www, https - // www를 https가 아닌 www가 아닌 url로 리디렉션
- Kubernetes 컨테이너에서 직접 HTTPS 트래픽을 종료하는 방법
- Elixir Ecto Phoenix - 엘릭서 엑토 피닉스 - 문자열 날짜 형식"yyyy-mm-dd"와 #datetime 비교
- angular - firebase 호스팅과 같이 http - //를 https : //로 리디렉션하는 방법
- angular - IIS는 동일한 IIS에서 동일한 도메인 이름에 대해 HTTP를 HTTPS로 리디렉션합니다
- php - htaccess 파일을 사용하여 웹 사이트 url을 https - //로 리디렉션하는 방법
- HTTPS 및 nginx 용 certbot을 사용하여 www를 www가 아닌 www로 리디렉션하는 방법
- amazon web services - 트래픽을 도메인으로 리디렉션
- reactjs - IIS에서 React에 대한 Http에서 https로 리디렉션
- html - 직접 방문시 리디렉션없이 HTTPS 버전 강제 적용
- apache - https가 아닌 www를 www로 리디렉션
- linux - Nginx에서 https 리디렉션을 사용하여 www를 기본 도메인으로 리디렉션하는 방법은 무엇입니까?
관련 질문
- elixir - Phoenix에서 리디렉션하지 않고 POST 작업에서 오류 페이지에 응답하는 올바른 방법은 무엇입니까?
- elixir - Phoenix에서 컨트롤러를 할당하는 방법
- react native - [네트워크 오류] - typeerror : 네트워크 요청 실패
- elixir - 매크로를 사용하여 모든 Ecto 모델에 대해 기본 새 기능을 만들 수 있습니까?
- Phoenix 13 Elixir jsonapi (FunctionClauseError) render/2에서 함수 절이 일치하지 않습니다
- elixir - apphtmleex Phoenix에 여러 JS 및 CSS 파일을 포함하는 방법
- elixir - 텔넷을 통해 로컬에서 phoneix 프레임 워크 앱에 연결하는 방법은 무엇입니까?
- elixir - mix phxgenhtml을 올바르게 사용하는 방법? 오류 수신 - "(mix) 스키마"posts"가 유효한 모듈 이름이 될 것으로 예상했습니다"
- elixir - Rails에서 생성 된 데이터베이스로 Ecto/Phoenix에서 다형성
force_ssl
를 활성화해야 할 것입니다 상태 확인에 사용되지 않는 엔드 포인트 또는 이와 관련된 것으로 만 연결하십시오.GKE의 k8s Ingress와 비슷한 문제가 있었고 해결책은
force_ssl
를 넣는 것이 었습니다 내 응용 프로그램 경로에 대해서만라우터에서 (내 건강 점검 경로로 구성된) HTTP를 사용합니다./healthz
의 예 :여기
# 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}"
의 예가 있습니다. :디버그하기가 약간 까다 롭다.
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
를 사용해보십시오 테스트를 수행하는 동안 요청 및 응답에 대한 헤더를 항상 확인하십시오.