Kubernetes의 Nginx Ingress에서 리디렉션 작성
저는 최근에 dictate.life 웹사이트를 다시 시작했고 배포를 계획하는 중에 처음에는 완전히 인식하지 못했던 몇 가지 간단한 요구 사항이 있음을 깨달았습니다.
나는 전통적인 Apache 또는 Nginx 환경에서 301 리디렉션을 사용하여 이러한 종류의 작업을 수행하는 데 익숙하지만 Kubernetes 환경에서 이를 수행하는 방법에 익숙하지 않았습니다. 내가 그것을 달성한 방법은 다음과 같습니다.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: default
name: my-nginx-ingress
annotations:
...other annotations...
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($host = 'myhost.com') {
return 301 https://www.myhost.com$request_uri;
}
이 리디렉션의 장점은 요청을 루트 경로인/뿐만 아니라 다른 경로로 리디렉션한다는 것입니다. 따라서 누군가가 http://dictate.life/about 을 방문하면 올바른 HTTPS 활성화, www-toting 버전의 URL로 이동합니다 🎉
이것이 쿠버네티스의 nginx 인그레스의 구성 스니펫 옵션을 사용하는 유일한 방법은 아닙니다. 위의 스니펫이 내 필요에 가장 적합하다는 것을 알았지만 사용자가 입력한 URL에 관계없이 항상 루트로 리디렉션하기를 원했다고 가정해 보겠습니다. URL이 일치하지 않는 새 웹사이트로 이동하는 경우 유용한 상황입니다. 이 경우 $request_uri 부분을 생략하면 됩니다.
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($host = 'myhost.com') {
return 301 https://www.myhost.com;
}
이것이 하나의 인그레스만 있다고 가정하고 구성 변경 사항을 하나의 인그레스에 적용하는 가장 좋은 방법입니다. Nginx ingress는 ConfigMaps를 사용하여 한 번에 여러 수신의 기본 구성을 변경하는 것도 지원합니다. 자세한 내용은 여기에서 확인할 수 있습니다. https://kubernetes.github.io/ingress-nginx/examples/customization/custom-headers/
더 알고 싶으세요? 여기 뻔뻔한 플러그가 있습니다. 와서 제 코드를 보거나 제 Twitch 스트림에서 질문을 해주세요! https://www.twitch.tv/malgasm/
원본 기사: https://malgasm.com/blog/32/write-redirects-in-kubernetes-nginx-ingress-how-to
Reference
이 문제에 관하여(Kubernetes의 Nginx Ingress에서 리디렉션 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/malgasm/writing-redirects-in-kubernetes-nginx-ingress-2e9l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)