From c250b656fdb67992c3e837e76022fedf7f06d1a1 Mon Sep 17 00:00:00 2001 From: Mina Choi Date: Tue, 1 Sep 2026 13:33:48 +0900 Subject: [PATCH] =?UTF-8?q?[chore]=20solution/frontend,docs:=20Bing=20?= =?UTF-8?q?=EC=86=8C=EC=9C=A0=ED=99=95=EC=9D=B8=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=E2=80=94=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=EC=97=90=20=EA=B5=AC=EC=9B=8C=EC=95=BC=20=EC=9E=AC=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EC=97=90=EB=8F=84=20=EC=82=B4=EC=95=84=EB=82=A8?= =?UTF-8?q?=EB=8A=94=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bing Webmaster 의 XML 파일 방식은 루트에서 파일을 읽는다. nginx `location /` 이 `/srv/app`(= solution-site 이미지)에서 찾으므로 `public/` 에 두고 굽는 것 말고는 자리가 없다. `docker cp` 로 밀어 넣으면 컨테이너 재생성 때 사라지고, 검색엔진이 인증을 재확인하는 시점에 조용히 풀린다. - solution/frontend/public/BingSiteAuth.xml: Bing 이 준 파일 그대로(가공하면 파싱이 깨진다) - docs/DEPLOY.md 2-2절: 세 검색엔진의 소유확인 방식과 사는 자리. ★ 확인은 상태코드가 아니라 내용으로 한다 — `try_files … /index.html` 이라 파일명이 틀리면 404 가 아니라 빌더 HTML 이 200 으로 나간다 검증: 배포 후 curl 로 본문 대조 --- docs/DEPLOY.md | 23 +++++++++++++++++++++++ solution/frontend/public/BingSiteAuth.xml | 4 ++++ 2 files changed, 27 insertions(+) create mode 100644 solution/frontend/public/BingSiteAuth.xml 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