Как запустить сайт в сети Yggdrasil

В общем случае, запустить сайт в сети Yggdrasil не сложнее, чем в любой другой сети (например, Интернет).

Рекомендации по выбору ПО web-сервера, а так же по его настройке легко можно найти в Интернете, и в случае с Yggdrasil нет ничего, на чем здесь имело бы смысл акцентировать внимание.

Ниже приведен пример простейшего конфигурационного файла web-сервера nginx для простого статического сайта.

server {
    listen [200:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:80; # адрес и порт, на которых будет доступен сайт
    root /var/www/html; # путь к корневому каталогу сайта
    index index.html; # имя файла, которое будет выдано сервером, при обращении к каталогу
}

То же самое для Apache

<VirtualHost [200:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:80> # Адрес и порт, на которых будет доступен сайт
        DocumentRoot /var/www/html # Путь к корневому каталогу сайта. 
                                   # Главная страница по умолчанию index.html
</VirtualHost>

Т.к., в конфигурационном файле сайта [nginx] указана директива [listen] c адресом Yggdrasil, необходимо, чтобы демон web-сервера запускался после того, как запустится Yggdrasil, инициализируется его tun-интерфейс и на нём появится IPv6-адрес, иначе web-сервер не сможет корректно запуститься. Поэтому необходимо немного модифицировать systemd-unit для запуска web-сервера. Пример override.conf для nginx, созданный с помощью sudo systemctl edit nginx.service:

[Unit]
Wants=sys-devices-virtual-net-tun0.device
After=sys-devices-virtual-net-tun0.device

Подробнее об этом можно прочесть здесь, здесь, здесь или здесь.

Читайте так же о том, как зарегистрировать доменное имя для своего сайта в сети Yggdrasil.

Обсуждение

d4708, 2023/12/15 13:48, 2023/12/15 13:49
Использовал в своих конфигах конструкцию типа

listen [::]:80 ipv6only=on default_server;

allow 0200::/7;
deny all;

Только сейчас понял, что ресурсы доступны на всех адресах, включая 300::/64 решил указать в listen основной явно, но с ним сервис nginx не стартует, хотя nginx -t молчит.

Наверное nginx не может присвоить процесс занятому интерфейсу, но тогда вопрос, почему в материале именно такой пример - он тестировался или у меня одного не работает основной адрес 2хх

newbie, 2023/12/15 13:56
Тут есть пример конфига: https://github.com/ygguser/simple_sites_directory/blob/master/nginx/sites_dir.conf
Примерно в таком виде это работает на множестве сайтов из списка sites.ygg.

d4708, 2023/12/15 14:18
Спасибо, смотрел косо на опцию ipv6only=on - убрал, теперь работает как в примере.

d4708, 2023/12/15 14:27
Может кому пригодится, если указать в listen адрес явно, то нужно сделать то же самое для виртуальных хостов (например .ygg) - видимо специфика nginx.

Остался прокси опеннет отвалившийся - там репозиторий, буду потом фантазировать как сделать универсальный конфиг вместо айпишника.

Только авторизованные участники могут оставлять комментарии.
yggdrasil/run_website.txt · Последнее изменение: 2023/11/27 23:01 — Thunar
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki