728x90
문제 상황
예전에 사이트A에 https를 적용해두고, http로 접속하는 경우 https로 리다이렉트하도록 세팅해뒀다.
문제는 http로 명시한 url로 들어가보니 https로 리다이렉트되는 커녕, 이상한 파일만 다운받아지는 것이다.
상황 분석
- 웹서버인 NGINX도 이상이 없고, https 프로토콜로 접속하면 아무런 이상이 없다.
- 다운로드 된 파일의 내용은 해결에 도움되지 않았다.
- 구글링하면서 특정 브라우저에서 http로 접속했을 때 요청 자체를 차단한다는 내용을 발견했지만 딱히 도움되진 않았다. 다른 google, naver 같은 사이트는 http 접속하면 자동으로 https 리다이렉트가 되기 때문이다.
- 사이트A에 http로 접속하면 헤더를 확인하면 status code는 200으로 뜨지만 NGINX access 로그를 보면 http로 접근했을 때의 로그가 남겨지지 않는다. 아예 웹서버로 접속이 안 되는 것처럼 보였다.
- 사이트A에 접속 시도했을 때 프로토콜이 공란이고, 요청이 차단된 것이 확인된다.
문제 해결
결국 NGINX 설정의 문제라는 생각이 들어 확인해봤다.
프로토콜이 아예 표시가 안 되었던 것을 생각하면서 보니, http로 접속할 때에도 http/2 프로토콜을 사용하도록 명시했다는 것을 발견했다.
결국, 아래 문제되는 부분의 http2 명시를 삭제하니 제대로 동작하였다.
server {
listen 80 default_server http2; # 문제가 되었던 부분
listen [::]:80 default_server http2; # 문제가 되었던 부분
server_name_;
return 301 https://$host$request_uri;
}
server {
# SSL configuration
listen [::]:443 ssl http2; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
...
애초에 http/1.1이나 http/0.9로 받고 있는 서버 블록이 없어서 나온 문제였다.
728x90
'Error' 카테고리의 다른 글
[Error] smtp error: could not authenticate (0) | 2022.10.25 |
---|---|
[Error][Git] pack-objects died of signal 9 (0) | 2022.10.24 |
[Error][Git] refusing to merge unrelated historiese (0) | 2022.10.24 |
[Error][PHP] Uncaught Error: Call to undefined function mysqli_connect() (0) | 2022.10.24 |
[Error] AH00558: httpd: Could not reliably determine... (0) | 2022.10.24 |