17강 / 20강
이름 하나에 사이트 하나 — server_name 과 SNI
한 IP · 한 포트 위에 120개 사이트
이 서버는 IP 하나, 포트 443 하나로 120개 사이트를 받습니다. 어떻게 구분할까요?
10강의 SNI 입니다. 브라우저가 악수를 시작하면서
"나는 drson.iotok.org 를 찾아왔어" 라고 먼저 말해 줍니다.
nginx 는 그 이름으로 server 블록을 고릅니다.
고르는 순서
| # | 무엇 | 보기 |
|---|---|---|
| 1 | 정확히 일치 | drson.iotok.org |
| 2 | 앞쪽 별표 | *.iotok.org |
| 3 | 뒤쪽 별표 | drson.* |
| 4 | 정규식 | ~^(?<sub>.+)\.iotok\.org$ |
| 5 | 기본 서버 | 맞는 게 없으면 default_server, 그것도 없으면 맨 위 블록 |
와일드카드 인증서와 짝을 맞춘다
*.example.com 인증서 하나면 한 단계 아래 이름 전부를 덮습니다.
a.example.com 은 되지만 a.b.example.com 은 안 됩니다 — 별표는 한 마디만 먹습니다.
그리고 와일드카드는 에이펙스를 포함하지 않습니다.
그래서 오리진 인증서를 만들 때 example.com 과 *.example.com 을 둘 다 넣는 것입니다(12강).
그래서 인증서에 이름 둘을 넣습니다.
Python
브라우저에서 실행
🤔 확인 문제
*.example.com 인증서로 덮이지 않는 이름은?해설 와일드카드는 한 마디만 대신합니다. 에이펙스 자체(
example.com)는 포함되지 않아요. 그래서 인증서를 만들 때 두 이름을 함께 넣습니다.🤔 확인 문제
새 서브도메인을 열었는데 엉뚱한 사이트가 뜹니다. 가장 그럴듯한 원인은?
해설 nginx 는 맞는
server_name 이 없으면 default_server 또는 맨 위 블록으로 보냅니다. 블록을 만들었는지, 오타는 없는지 먼저 확인합니다.