> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 외부 URL

> Kubernetes 배포에서 사용자가 외부 URL의 파일을 추가할 수 있도록 하고, 클러스터의 내부 주소에는 접근할 수 없도록 합니다.

"외부 URL에서" 가져오는 파일(그리고 [Import API](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md)와 AI 어시스턴트의 `web_fetch`가 다운로드하는 파일)은 모든 Ayakaleaf Pro 파드 내부의 **linked-url-proxy** 서비스가 가져옵니다. 이 서비스는 공개 주소가 아닌 주소를 거부하므로, 사용자가 이를 통해 내부 서비스를 읽을 수 없습니다. 기능과 설정은 [외부 URL](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/overleaf-toolkit/external-url.md)에 설명되어 있습니다.

| | |
| - | - |
| 서비스 | linked-url-proxy(모든 파드의 `127.0.0.1:3066`). `ENABLED_LINKED_FILE_TYPES`에 `url`이 있으면 web이 메뉴를 표시함 |
| 파드 → 외부 | 사용자가 입력한 URL, 모든 포트, 직접 또는 `OVERLEAF_LINKED_URL_OUTBOUND_PROXY`를 통해 |
| 상태 | 없음 |
| 주기적 작업 | 없음: 파일은 사용자가 요청할 때만 갱신됨 |

### 구성

```yaml title="30-config.yaml (additions)" wrap theme={null}
  ENABLED_LINKED_FILE_TYPES: project_file,project_output_file,url
  # Public addresses of your nodes and load balancer, see below
  OVERLEAF_LINKED_URL_BLOCKED_NETWORKS: 203.0.113.0/24 198.51.100.7/32
  # optional
  # OVERLEAF_LINKED_URL_ALLOWED_RESOURCES: ^https?://www\.example\.com/public/
  # OVERLEAF_LINKED_URL_OUTBOUND_PROXY: http://proxy.example.com:3128
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### Kubernetes에서 차단되는 대상

프록시는 공개 유니캐스트 주소가 아닌 모든 주소를 거부합니다. 루프백, 링크 로컬(클라우드 메타데이터 주소 `169.254.169.254` 포함), 사설 대역 `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, 캐리어급 NAT 대역 `100.64.0.0/10`, 그리고 이에 대응하는 IPv6 주소가 해당됩니다. 따라서 이 대역에 있는 파드 및 Service 네트워크(kubeadm, flannel, Calico 및 대부분의 관리형 클러스터의 기본값)는 별도 설정 없이 차단되며, 이 주소로 해석되는 `redis`나 `git-bridge` 같은 클러스터 내부 이름도 차단됩니다.

공개 주소는 허용됩니다. 노드나 로드 밸런서에 공개 주소가 있다면 이를 `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS`에 추가하여(공백 또는 쉼표로 구분) 사용자가 이를 통해 NodePort나 상태 페이지를 가져올 수 없도록 하세요.

`OVERLEAF_LINKED_URL_OUTBOUND_PROXY`가 설정되어 있으면 호스트 이름은 프록시가 해석하므로 IP 주소를 포함한 URL만 검사됩니다. 이 경우 프록시가 직접 내부 네트워크를 차단해야 합니다.

### 여러 레플리카

추가 작업이 없습니다. 각 파드는 자체 linked-url-proxy와 동일한 설정으로 파일을 가져옵니다.

### Kubernetes에서의 테스트

세 개의 레플리카, flannel의 파드 네트워크 `10.244.0.0/16`, kubeadm의 서비스 네트워크 `10.96.0.0/12`로 구성된 Kubernetes 1.37 환경에서, 프록시는 `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` 없이도 Service의 ClusterIP, 클러스터 내부 이름 `redis`, `garage`, `overleaf-1.overleaf-hl.overleaf.svc.cluster.local`, 그리고 노드 주소로부터의 다운로드를 거부했습니다. Import API를 통한 루프백 및 클라우드 메타데이터 주소의 거부, 그리고 AI 어시스턴트가 `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`가 허용하는 페이지만 읽는지에 대한 엔드투엔드 테스트도 통과했습니다.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.