From dedc011ed0766ff8d0c107c42b049a8bb8bf027c Mon Sep 17 00:00:00 2001 From: kaffa Date: Wed, 10 Jun 2026 15:11:48 +0900 Subject: [PATCH] =?UTF-8?q?searxng:=20google=20retry=20=ED=8C=A8=EC=B9=98?= =?UTF-8?q?=20=EC=8B=9C=EB=8F=84=C2=B7=EB=A1=A4=EB=B0=B1=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D=20(lite-shell=EC=9D=80=20IP=EB=8B=B9=20rate,=20?= =?UTF-8?q?=EB=8B=A8=EC=9D=BCIP=20=EC=9E=AC=EC=8B=9C=EB=8F=84=EB=A1=9C=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0=20=EB=B6=88=EA=B0=80,=20~100%=EC=97=94=20egr?= =?UTF-8?q?ess=20IP=20=ED=92=80=20=ED=95=84=EC=9A=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/searxng.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/searxng.md b/services/searxng.md index ab84fca..bfeb48f 100644 --- a/services/searxng.md +++ b/services/searxng.md @@ -73,7 +73,13 @@ Go + [[https://github.com/refraction-networking/utls|utls]] 기반 MITM forward > > 결과 — google 포함률: **0% → 격리 라이브 ~83%, 전체검색 ~40~50%**. 결과 품질은 정상. > -> **남은 한계**: 전체(다엔진 동시) 검색에서 google이 절반가량 누락. raw fetch는 100%인데 라이브 엔진은 변동 — 프록시 경유 google이 타 엔진보다 느리고 + 엔진의 정확한 요청 패턴에 Google이 간헐적으로 lite-shell을 반환하는 SearXNG↔Google 고질 변동. **추가 개선 후보**: google.py response()에서 결과 0 + lite-shell 감지 시 예외 발생시켜 SearXNG 재시도 유도하는 파서 패치(uaPatch와 동일한 sed 주입 메커니즘 활용 가능). brave/duckduckgo/qwant는 정상. +> **남은 한계 — 근본 원인 규명 (2026-06-10 추가 조사)**: lite-shell은 **프록시 IP당 rate 기반**이다. 간격을 둔 단일 요청은 GSA·엔진형 파라미터 모두 data-ved HTML 100%(8/8) 반환하지만, 짧은 시간 내 다수 요청(burst)이면 Google이 해당 IP에 lite-shell(data-ved 없음)을 반환 → 파서 0건. 즉 정상 저빈도 사용은 대체로 정상, 고빈도/burst에서만 누락. +> +> **재시도 패치 시도 → 실패·롤백 (2026-06-10)**: google.py `response()`에 lite-shell 감지 시 동일 요청을 프록시로 백오프 재시도하는 래퍼를 주입(`googleRetryPatch`, configmap-google-patch + deployment command 래핑으로 실행 배선). 단일 강제-empty 테스트는 재시도로 10건 확보 성공했으나, **실사용 검증 실패**: lite-shell이 IP당 rate 기반이라 초기 요청과 재시도가 같은 rate-limit 윈도우를 공유 → 재시도가 무효일 뿐 아니라 Google 요청량을 (1+maxRetries)배로 늘려 rate-limit을 **악화**(burst 전체검색 포함률 0/12로 더 나빠짐). **결론: 단일 egress IP로는 클라이언트 재시도로 rate-limit을 이길 수 없다.** `googleRetryPatch.enabled: false`로 롤백, 템플릿은 보존. +> +> **~100% 달성의 진짜 조건**: egress IP 풀(여러 tlsproxy IP 로테이션). zlambda 단일 IP로는 한계. SearXNG 자체엔 빈-결과 in-search 재시도 없음(네트워크 `retries`는 HTTP 에러에만 동작). 현실적으로는 저빈도 사용 시 대부분 정상이므로 현 상태 수용 + brave/duckduckgo/qwant 보강으로 운용. +> +> 참고: SearXNG google 0건은 프로젝트 전반의 고질 이슈 (공식 #5286→PR#5644가 GSA UA로 전환한 것도 같은 맥락, 메인테이너가 "임시방편, 곧 패치될 것"이라 명시). #5867 HTTP 403, #5852 News 구조 변경 등. ### SearXNG 설정