
어떤 이유에서인지 나는 HTTPS에서 HTTP로 URL을 다시 작성하는 임무를 맡고 있습니다.
배경: Nginx를 역방향 프록시로 사용하고 있으며 애플리케이션이 혼합 리소스 오류를 제공하고 HTTPS에서 작동하지 않는 동안 443 블록에 위치 블록이 필요합니다(그래서 개발자가 말합니다).
내가 얻고 싶은 것: Nginx 위치 블록이 44 서버 블록에 있지만 모든 트래픽이 HTTP(80)를 통해 수행되도록 하고 싶습니다.
이 작업을 수행하는 방법을 아는 사람이 있나요? 나는 URL 재작성을 생각하고 있었습니다.
그리고 네, 443보다 포트 80 서버 블록에 넣는 것이 더 합리적이라는 것을 압니다. 노인들은 가끔 이상한 생각을 합니다.
위치 블록
location /solution_tools/ {
auth_basic "Please enter your credentials";
auth_basic_user_file solutions_utils.pass;
proxy_pass http://solution_tools/;
}
답변1
"애플리케이션에서 혼합 리소스 오류가 발생하고 HTTPS에서 작동하지 않습니다(그래서 개발자가 말합니다)."
그런 다음 개발자는 현재 HTTPS를 지원하지 않는 모든 웹 앱이 완전히 사용되지 않으므로 앱을 수정해야 합니다.
앱을 수정할 수 없는 경우 일반 HTTP로 다시 리디렉션하는 대신 반대 작업을 수행하세요. 이미 역방향 프록시를 실행하고 있다는 사실을 최대한 활용하여 절대 URL을 참조하는 "결함 있는" HTML 코드를 일반 HTTP로 다시 작성하세요. http를 http://www.exameple.com/
https로 변경 httpS://www.exameple.com/
하고 그런 식으로 혼합 콘텐츠 문제를 해결하세요.
http://nginx.org/en/docs/http/ngx_http_sub_module.html:
location / {
sub_filter 'http://$host/' '"https://$host/';
sub_filter_once on;
}