Назад | Перейти на главную страницу

Как создать правило iptables, разрешающее IP-адрес в любом подкаталоге

В настоящее время у меня есть сервер DigitalOcean Ubuntu 16.04x64 с контейнерами Linux для размещения нескольких сайтов. В одном из контейнеров установлен HAProxy, который направляет входящий трафик в соответствующие контейнеры. Каждый контейнер имеет уникальный IP-адрес, присвоенный ему при создании.

Я выполнил следующую команду, чтобы создать правило для таблицы iptables nat:

sudo iptables -t nat -I PREROUTING -i eth0 -p TCP -d your_server_ip / 32 --dport 80 -j DNAT --to-destination your_haproxy_ip: 80

Это работает правильно, и любой домен, который я указал на сервер, перенаправляется в контейнер, в который он должен перейти.

В настоящее время я переношу сайты с другого сервера, и мне все еще нужны указанные там домены, пока я не протестирую сайты на новом сервере. Кроме того, для будущих разработок я хотел бы получить доступ к контейнерам, не указывая на них доменное имя.

Итак, мой вопрос: как я могу отредактировать приведенную выше команду, чтобы создать правило, разрешающее подкаталоги? Например: 159.203.86.144/test или 159.203.86.144/10.23.98.211

Согласен с Майкл Хэмптон, если вы хотите это сделать, вы должны использовать обратный прокси, например nginx, это было бы лучшим решением. Вы можете прочитать об этом в Эта статья.

Хорошо, получается, что исходное правило, которое было создано, уже могло обрабатывать путь к подкаталогу, который мне нужен для доступа к контейнеру.

http: // ip-адрес_сервера / ip_контейнера_ linux

Я добавил эту конфигурацию в интерфейс /etc/haproxy/haproxy.conf

acl host_test url_beg -i / linux_container_ip

Затем в контейнере Linux добавлен псевдоним в / etc / nginx / sites-available / default

location /linux_container_ip {
alias /path/to/root/production/folder/here;
}