diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md index dda1c85..880f6da 100644 --- a/docs/DEPLOY.md +++ b/docs/DEPLOY.md @@ -146,6 +146,29 @@ docker compose exec solution-worker python scripts/check_search_ready.py https:/ `nginx/site.conf` 에 443 과 인증서 볼륨을 추가한다. Blob 단독으로는 커스텀 도메인 TLS 가 안 되지만 nginx 는 Let's Encrypt 로 끝난다 — CDN 을 억지로 끼울 이유가 없다. +### 2-2단계 — 검색엔진 소유확인 + +★ **오리진이 하나라 루트에서 한 번만 하면 `/s/` 전부가 딸려온다.** 사장님이 늘어도 + 반복하지 않는다 — 오리진을 안 가른 이유가 이거다. + +| | 방식 | 어디에 사는가 | +|---|---|---| +| 구글 Search Console | DNS TXT (도메인 속성) | DNS. **이 레포 밖이고 재배포와 무관하다** | +| Bing Webmaster | `BingSiteAuth.xml` | `solution/frontend/public/` → 이미지에 구워진다 | +| 네이버 서치어드바이저 | 메타태그 / HTML 파일 (**DNS TXT 를 안 받는다**) | 아직 안 붙였다 | + +★ **파일 방식은 재배포가 필요하다.** `public/` 은 `solution-site` 이미지에 구워지므로 + `docker cp` 로 밀어 넣으면 컨테이너 재생성 때 사라진다 — 검색엔진은 인증을 주기적으로 + 재확인하므로 그때 조용히 풀린다. + +★ **확인은 상태코드가 아니라 내용으로 한다.** `location /` 이 `try_files $uri … /index.html` + 이라 파일명이 한 글자만 틀려도 404 가 아니라 **빌더 앱 HTML 이 200 으로** 나간다. + 검색엔진은 "확인 실패" 만 뱉고 이유를 안 알려준다. + +```bash +curl -s https://<도메인>/BingSiteAuth.xml # HTML 이 나오면 파일이 없는 것이다 +``` + --- ## 4. 나중에 — Azure Blob 을 켤 때 diff --git a/solution/frontend/public/BingSiteAuth.xml b/solution/frontend/public/BingSiteAuth.xml new file mode 100644 index 0000000..6e73c95 --- /dev/null +++ b/solution/frontend/public/BingSiteAuth.xml @@ -0,0 +1,4 @@ + + + B2F7F84EB3B85C839F5B1F17DDDA6C2E + \ No newline at end of file