Этот вопрос касается выделенного сервера под управлением CentOS 5.4. При необходимости я могу подключиться как root для сложных задач настройки.
Я пишу, потому что настроил svnserve для обработки запросов с помощью xinetd. Это работает отлично, и я с радостью совершаю и проверяю без проблем.
На этом сервере также размещены некоторые другие домены, и я могу подключиться к svnserve через любой из них, поскольку все они используют один и тот же IP-адрес. Репозитории были защищены с помощью мер аутентификации svnserve, так что это не имеет большого значения, но:
Можно ли разрешить подключения к svnserve только тогда, когда клиенты обращаются к нему через sub.mydomain.com? Я просмотрел документацию для xinetd и TCP_wrappers в поисках решения, но пока ничего.
(Я знаю, что одним из вариантов было бы использовать DAV svn вместо svnserve, но я следил за парой руководств, чтобы запустить это, и каждый раз терпел неудачу. Решение с svnserve было бы предпочтительнее, поскольку оно на самом деле работает довольно хорошо для меня.)
Спасибо за помощь!
Xinetd вызывает серверы (в вашем случае svnserve), но не обращается к данным, которыми они управляют. По этой причине xinetd может фильтровать входящие адреса (only_from
), но не запрашиваемые домены, поскольку запрашиваемые домены не объявляются xinetd, а передаются на сервер.
Как было предложено, вы можете захотеть использовать выделенный IP-адрес для этой службы, чтобы вы могли привязать службу только к этому адресу (используя bind
параметр).
Вы можете получить дополнительный IP-адрес только для этого поддомена.
Как узнать, какое доменное имя они запросили? Причина, по которой вы можете сделать это с помощью DAV, заключается в том, что он будет работать под apache (или другим веб-сервером). Веб-серверы имеют концепцию виртуальных хостов. Svnserve этого не делает. Вам нужно будет использовать DAV, чтобы получить эту функциональность.