add: прокси хоста из docker

This commit is contained in:
Sergei Erjemin 2025-02-20 14:00:23 +03:00
parent 22538dcde5
commit 1a72d6ea9b

View File

@ -5,7 +5,7 @@
перенаправить внешние запросы на другие сервера внутри сети. Заодно можно настроить SSL-терминацию.
На примере AudioBookShelf, который должен быть доступен снаружи по адресу `some.you.site` у нас будет вот такой конфиг:
```nginx
```nginx configuration
# config for AudioBookShelf [some.you.site]
server {
@ -53,3 +53,33 @@ server {
return 404; # managed by Certbot
}
```
## Проксирование на host если nginx находится внутри Docker
Если [nginx находится внутри Docker или Docker Compose](../docker/docker-nginx-w-certbot.md), то он сможет увидеть
только свои контейнерные IP-адреса и хосты. Если таким nginx нужно проксировать на сам хост, то в конфиге nginx
нужно указать:
```nginx configuration
proxy_pass http://host.docker.internal:xxxx;
```
* `host.docker.internal` -- это специальный DNS-имя, которое указывает на хост, на котором запущен Docker.
Начиная с Docker 20.10.0+ сам контейнер надо запускать с дополнительным параметром `--add-host=host.docker.internal:host-gateway`.
```shell
docker run --add-host=host.docker.internal:host-gateway ...
```
Или добавить дополнительную инструкцию `extra_hosts: "host.docker.internal:host-gateway"` в `docker-compose.yml` при
использовании Docker Compose:
```yaml
services:
nginx:
image: nginx:latest
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- "80:80"
...
...
```