2014-09-28 10 views
2

У меня есть сервер, на котором размещается несколько контейнеров Docker, включая обратный прокси Nginx для обслуживания контента. Для того, чтобы получить статус этого сервера я добавил следующее расположение блока:Страница статуса Nginx в Docker

location /nginx_status { 
    stub_status on; 
    access_log off; 
    allow  127.0.0.1; 
    allow  172.0.0.0/8; 
    deny  all; 
} 

При нормальных обстоятельствах я бы открыты только до 127.0.0.1, но это означает, что хозяин машины не будет иметь доступ (только Nginx контейнер сам), поэтому я открыл все 172 адреса. Есть ли более чистый/более безопасный способ сделать это или мой подход подходит для производственной среды?

ответ

2

Когда докер запускает его creates an interface docker0 that is an ethernet bridge и присваивает ему IP-адрес. Docker tries to choose a smart default, а диапазон 172.17.0.0/16 является хорошим стандартом по умолчанию. Хост направит весь трафик, предназначенный для этой сети, на мост docker0, и он недоступен извне, если вы не сопоставили порт.

На ваш вопрос вы допустили 172.0.0.0/8, некоторые из которых не являются RFC1918 private address space. Вы можете ограничить это дальше либо всеми адресами в источнике сетевого драйвера Docker, с которым я связан ранее, либо просто 172.17.0.0/16, так как это первое в списке и обычно используется.

Смежные вопросы