FirewallD и docker :блокируют общедоступный порт

Не уверен, что это быстро:

awk -v value=0 '
NR==FNR{for(i=2;i<=NF;i++){if($i==value){s[i]++}}}
NR!=FNR {
  printf "%s"OFS,$1
  for (i=2;i<=NF;i++){if(s[i]>1)last=i}
  for (i=2;i<=NF;i++){
    if(s[i]>1){
      if (i==last)printf "%s\n",$i
      else printf "%s"OFS,$i}
  }
}
' file file

Возможно, вы захотите установить OFSна вкладку(BEGIN{OFS="\t"}.)

0
23.11.2021, 11:05
1 ответ

Вы можете добавить в настройки службу обратного прокси-сервера, а затем закрыть доступ к портам службы 1 и службы 2 и позволить обратному прокси-серверу фильтровать трафик.

Если вы не предоставляете порты, контейнеры могут по-прежнему общаться друг с другом (в одной и той же сети докеров )и разрешать IP-адреса по именам служб через встроенный -в DNS докеров. (Пр. сервис1, сервис2 ).

В этом случае ваш компоновочный файл будет выглядеть примерно так:

services:
  service1:

  service2:

  proxy:
    ports:
      - 80:80
      - 443:443
      - <extra ports>:<extra ports>

Например, вы можете использовать контейнер nginx с дополнительной конфигурацией :(просто убедитесь, что прокси-сервер настроен на прослушивание внешних портов, которые вы указываете в своей службе.):

location /service1 {
    allow X.X.X.X;
    deny  all;
    proxy_pass http://service1:1234;
}

location /service2 {
    allow X.X.X.X;
    deny  all;
    proxy_pass http://service2:6969;
}

В качестве альтернативы вы можете создать две директивы «сервер» в конфигурации nginx, каждая из которых прослушивает один из служебных портов, а затем пропускает трафик через корневой каталог («/» ), если вы не хотите добавлять путь к URL-адресу.

Это дополнительно позволит вам запускать несколько копий ваших служб, все из которых прослушивают одни и те же порты, сохраняя при этом возможность предоставлять их (и фильтровать трафик )через обратный прокси-сервер.

-1
25.11.2021, 08:14

Теги

Похожие вопросы