У меня вопрос относительно lighttpd
лучшие практики для настройки vhosts. Я хотел настроить модульную конфигурацию для нескольких vhosts с разделенными файлами конфигурации, чтобы иметь возможность легко включать / отключать определенные vhosts. Платформа - Debian 8.2 под управлением lighttpd 1.4.35. Требования следующие:
conf-enabled/vhostN.conf
Итак, я установил следующее (1.2.3.4 - IP-адрес общедоступной сетевой карты, 10.0.0.1 - IP-адрес внутри частной сети). В центральном lighttpd.conf
Сначала я определяю привязку сервера по умолчанию к обоим IP-адресам:
server.bind = "1.2.3.4" # public default server
server.port = 80
$SERVER["socket"] == "10.0.0.1:80" {} # private default server
Хосты настроены в отдельных файлах под conf-enabled/
, сказать vhost1.conf
, vhost2.conf
и т.д. Я попытался разделить следующие директивы по файлам конфигурации:
## This is for machine2machine communication on port 81 over the Internet
$SERVER["socket"] == "1.2.3.4:81" {
...
}
## This is for machine2machine communication on port 81 inside the private net
else $SERVER["socket"] == "10.0.0.1:81" {
...
}
## This is vhost 1, accessible through Internet and private network
else $HTTP["host"] =~ "^vhost1.do.main$" {
...
}
## This is vhost 2
else $HTTP["host"] =~ "^vhost2.do.main$" {
...
}
и так далее. Пока все работает, если поместить все в один большой файл конфигурации. Но когда я разбиваю конфиг на отдельные файлы, кажется, что else
выдает синтаксические ошибки, поскольку не учитывается во включенных файлах cfg.
В то время else
будет избыточным между разделами vhosts, запускаемыми HTTP Host
заголовок, это не так в отношении $SERVER["socket"]
раздел. Если бы я удалил else
, можно было бы получить доступ ко всем vhosts через порт 81, унаследовав настройки для хоста m2m в дополнение к настройкам для именованных vhosts.
Кроме того, я не мог понять, как определить секцию для m2m comm всего в одном блоке с двумя $SERVER["socket"]
директивы для двух IP-адресов, поэтому мне пришлось продублировать настройку для одного и того же виртуального хоста, привязанного к порту 81. Если есть способ объединить два $SERVER["socket"]
директивы для одного раздела, я мог бы использовать сервер по умолчанию для порта 81 и окружить именованные vhosts $SERVER["socket"]
привязка директивы к порту 80.
Итак, мои вопросы:
else
?$SERVER["socket"]
директивы должны быть объединены, чтобы избежать необходимости дублировать один и тот же виртуальный хост дважды и инкапсулировать группу именованных виртуальных хостов, что позволяет избежать необходимости else
? Я тестировал ||
оператор, но это не сработало.Любые идеи?