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

Обслуживание части URL-адресов на другой сетевой карте

У меня есть веб-приложение Django 2.2, работающее на веб-сервере Apache 2.4 Ubuntu 18.04, которое имеет два сетевых интерфейса. Один сетевой интерфейс предназначен для доступа в Интернет (eth0), а другой - для локальной сети (eth1).

Мне нужно найти способ ограничить доступ к некоторым страницам из каждого сетевого интерфейса, при этом некоторые страницы по-прежнему будут доступны из обоих интерфейсов.

В проектах urls.py у меня есть следующие URL-адреса:

url(r'^eth0/', include('eth0.urls')), #accessible to only eth0
url(r'^eth0eth1/', include('eth0eth1.urls')), #accessible by both network interfaces
url(r'^eth1/', include('eth1.urls')), #accessible to only eth1

Как я могу добиться этого с помощью конфигурации Apache или Django?

Я решил проблему со следующей конфигурацией apache.

<Location /eth0/>
   Require ip eth0_subnet_ip
</Location>
<Location /eth0eth1/>
   Require ip eth0_subnet_ip
   Require ip eth1_subnet_ip
</Location>
<Location /eth1/>
   Require ip eth1_subnet_ip
</Location>

Добавление этих директив в конфигурацию виртуального хоста решило мою проблему.