From e95c206824459b7f871d4c4d605be3c2f840c494 Mon Sep 17 00:00:00 2001 From: kaffa Date: Wed, 10 Jun 2026 14:34:03 +0900 Subject: [PATCH] =?UTF-8?q?searxng:=20google=200=EA=B1=B4=20=ED=9B=84?= =?UTF-8?q?=EC=86=8D=20=EC=A7=84=EB=8B=A8=C2=B7=EC=A1=B0=EC=B9=98=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20(timeout/uaPatch/CPU,=200%=E2=86=92~50%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/searxng.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/services/searxng.md b/services/searxng.md index 0c822b6..ab84fca 100644 --- a/services/searxng.md +++ b/services/searxng.md @@ -58,7 +58,22 @@ Go + [[https://github.com/refraction-networking/utls|utls]] 기반 MITM forward > **2026-06-10 재배포 기록**: 기존 SearXNG `proxy.address`가 죽은 IP `100.79.87.48:8443`을 가리켜 google 엔진이 `HTTP connection error`로 0건. apisix-osaka의 `tlsproxy:latest` 이미지와 CA 페어를 zlambda로 이식(`docker save|load` + scp), host network로 기동. `charts/searxng/values.yaml`의 `proxy.address`를 `100.78.51.18:8443`(zlambda 실제 tailscale IP)로 교정·푸시 → ArgoCD synced. 프록시 경유 Google 접근은 200/정상 HTML 복구됨(connection error 해소). > -> **남은 이슈 (tlsproxy와 무관, SearXNG 엔진 문제)**: google 엔진이 여전히 0건 반환(`unresponsive: []`, 에러 아님). 원인은 Google이 GSA·Chrome UA 양쪽 모두에 `data-ved` 없는 경량 JS-shell HTML(약 90KB)을 반환하는데, 현재 `google.py` 파서는 `//a[@data-ved and not(@class)]`를 기대 → 매칭 0. 상류 SearXNG google 엔진의 스크레이핑 호환성 문제. **해법 후보**: SearXNG 이미지 최신화(현재 `image.tag: latest`) 또는 google.py 파서 패치. brave/duckduckgo/qwant 등 타 엔진은 정상. +> **2026-06-10 google 0건 후속 조치 (위 재배포 직후)**: +> +> 정밀 진단 결과 — UA·파서 정합성: +> - 현재 이미지는 이미 최신 `2026.6.8`. 재pull 무의미 (버전 문제 아님). +> - `gen_gsa_useragent()`(Android Nexus5 GSA UA) + `Accept: */*` → Google이 **`data-ved` 풍부한 정상 HTML(150KB+, dv 50~80)** 반환. fetch→파서 전 구간 정상 (수동 재현 6~10건 추출 성공). +> - **Chrome UA → `data-ved` 없는 lite-shell(90KB) → 파서 0건.** 따라서 `uaPatch`(Chrome UA 교체)는 **해롭다 → 비활성화**. 기본 GSA UA가 정답. (uaPatch는 마운트만 되고 실행은 안 되던 inert 상태였음) +> - raw fetch 신뢰성: fresh/keepalive 모두 **10/10**. 연결 풀 문제 아님. +> +> 적용한 변경 (`charts/searxng`): +> - `uaPatch.enabled: false` (Chrome UA가 google 깨뜨림) +> - google 엔진 `timeout: 8 → 15`, outgoing `request_timeout: 10 → 15` + `max_request_timeout: 20` +> - CPU limit `500m → 1` (동시 부하 대비, 단 포함률엔 영향 없었음) +> +> 결과 — 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는 정상. ### SearXNG 설정