Compare commits
20 Commits
release-0.
...
release-0.
| Author | SHA1 | Date | |
|---|---|---|---|
| 5044430ceb | |||
| 1f211936ad | |||
| e0ccf9a350 | |||
| 162e1cc88a | |||
| 57c776a1a3 | |||
| facc643c0b | |||
| 4b0404f5df | |||
| 11458e92f2 | |||
| a26e38d0ce | |||
| ca9cfa40a4 | |||
| 99b390b869 | |||
| f61f737fb1 | |||
| 942d01aa0e | |||
| 3668c17087 | |||
| 7619a4b8f8 | |||
| 84c7ac2add | |||
| 93162143aa | |||
| 9e8b6e44bb | |||
| 8da9c6e598 | |||
| a82e359da2 |
46
README.MD
46
README.MD
@@ -1,46 +0,0 @@
|
|||||||
# Nginx Routes Helper
|
|
||||||
|
|
||||||
Специальный образ NGINX, который упрощает работу с проксированием портов между разными сетками у докер контейнеров.
|
|
||||||
|
|
||||||
По-умолчанию установлены утилиты для работы с роутами.
|
|
||||||
|
|
||||||
# Пре-стартовый скрипт
|
|
||||||
|
|
||||||
При старте контейнера происходит проверка на наличие скрипта, который должен быть выполнен в самом начале.
|
|
||||||
|
|
||||||
Скрипт располагается в `/invoke_initial_script.sh`, собственно сюда его и надо монтировать.
|
|
||||||
|
|
||||||
Например, требуется добавить роуты в контейнер при его старте.
|
|
||||||
|
|
||||||
`/invoke_initial_script.sh`:
|
|
||||||
```bash
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
echo "Adding routes..."
|
|
||||||
ip route add 192.168.255.0/24 via 172.20.20.2
|
|
||||||
echo "Routes added!"
|
|
||||||
```
|
|
||||||
|
|
||||||
Тут может быть совершенно что угодно, этот скрипт выполнится до старта NGINX.
|
|
||||||
|
|
||||||
# Проброс портов по-умолчанию
|
|
||||||
|
|
||||||
Если пользователь не примонтирует свой `/etc/nginx/nginx.conf`, то по-умолчанию будет использоваться
|
|
||||||
обычный `stream` прокси с порта на адрес. Слушаемый порт и целевой адрес указываются через переменные окружения:
|
|
||||||
- `NGINX_PROXY_SOURCE_PORT` - Порт (например `80`), который слушает NGINX
|
|
||||||
- `NGINX_PROXY_TARGET_ADDRESS` - Адрес и порт (например `localhost:25565`), куда будет отправляться трафик
|
|
||||||
|
|
||||||
Пример использования в `docker-compose`:
|
|
||||||
```yml
|
|
||||||
version: '3.7'
|
|
||||||
services:
|
|
||||||
test-nginx:
|
|
||||||
image: "git.tswf.io/docker-base-images/nginx-routes:latest"
|
|
||||||
ports:
|
|
||||||
- "25565:25565"
|
|
||||||
environment:
|
|
||||||
NGINX_PROXY_SOURCE_PORT: 25565
|
|
||||||
NGINX_PROXY_TARGET_ADDRESS: "another_container:9000"
|
|
||||||
another_container:
|
|
||||||
image: "blablabla"
|
|
||||||
#...
|
|
||||||
```
|
|
||||||
19
default.nginx.conf
Normal file
19
default.nginx.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
events {}
|
||||||
|
|
||||||
|
stream {
|
||||||
|
server {
|
||||||
|
set $nginx_proxy_source_port '';
|
||||||
|
set $nginx_proxy_source_address '';
|
||||||
|
|
||||||
|
content_by_lua_block {
|
||||||
|
ngx.var.nginx_proxy_source_port = os.getenv("$NGINX_PROXY_SOURCE_PORT");
|
||||||
|
ngx.var.nginx_proxy_source_address = os.getenv("$NGINX_PROXY_SOURCE_ADDRESS");
|
||||||
|
|
||||||
|
ngx.say(ngx.var.nginx_proxy_source_port)
|
||||||
|
ngx.say(ngx.var.nginx_proxy_source_address)
|
||||||
|
}
|
||||||
|
|
||||||
|
listen $nginx_proxy_source_port;
|
||||||
|
proxy_pass $nginx_proxy_source_address;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user