В настоящее время у меня есть сервер 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
, это было бы лучшим решением. Вы можете прочитать об этом в Эта статья.
Хорошо, получается, что исходное правило, которое было создано, уже могло обрабатывать путь к подкаталогу, который мне нужен для доступа к контейнеру.
Я добавил эту конфигурацию в интерфейс /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;
}