> ## 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

> Разрешите пользователям добавлять файлы по внешним URL в развёртывании на Kubernetes и закройте доступ к внутренним адресам кластера.

Файлы «From External URL» (а также файлы, которые загружают [Import API](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) и `web_fetch` ИИ-ассистента) скачивает сервис **linked-url-proxy** в каждом поде Ayakaleaf Pro. Он отклоняет непубличные адреса, поэтому пользователи не могут читать через него внутренние сервисы. Функция и её настройки описаны в разделе [Внешний URL](https://ayakaleaf-pro.mintlify.site/ru/on-premises/configuration/overleaf-toolkit/external-url.md).

| | |
| - | - |
| Сервис | linked-url-proxy (`127.0.0.1:3066` в каждом поде); web показывает пункт меню, если `url` указан в `ENABLED_LINKED_FILE_TYPES` |
| Под → внешняя сеть | 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

Прокси отклоняет любой адрес, не являющийся публичным unicast-адресом: loopback, link-local (включая адрес метаданных облака `169.254.169.254`), частные диапазоны `10.0.0.0/8`, `172.16.0.0/12` и `192.168.0.0/16`, диапазон carrier-grade NAT `100.64.0.0/10`, а также их аналоги в IPv6. Поэтому сети подов и сервисов в этих диапазонах — а так по умолчанию в kubeadm, flannel, Calico и большинстве управляемых кластеров — блокируются без каких-либо настроек, как и внутрикластерные имена вроде `redis` или `git-bridge`, которые в них разрешаются.

Публичные адреса разрешены. Если у ваших узлов или балансировщика нагрузки есть публичные адреса, добавьте их в `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` (через пробелы или запятые), чтобы пользователи не могли обращаться через них к NodePort или странице состояния.

Если задан `OVERLEAF_LINKED_URL_OUTBOUND_PROXY`, имена хостов разрешает прокси, поэтому проверяются только URL, содержащие IP-адрес: прокси должен сам блокировать ваши внутренние сети.

### Несколько реплик

Ничего дополнительного не требуется: каждый под скачивает файлы через собственный linked-url-proxy с теми же настройками.

### Проверено на Kubernetes

На Kubernetes 1.37 с тремя репликами, сетью подов flannel `10.244.0.0/16` и сетью сервисов kubeadm `10.96.0.0/12` прокси отклонял загрузки с ClusterIP сервиса, с внутрикластерных имён `redis`, `garage` и `overleaf-1.overleaf-hl.overleaf.svc.cluster.local`, а также с адреса узла, без какого-либо `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS`. Наши сквозные тесты также проходят для отклонения loopback и адреса метаданных облака через Import API и для ИИ-ассистента, читающего только страницы, разрешённые `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`.


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