💾 Archived View for betahowto.duckdns.org › gemini_protocol:twins captured on 2024-03-21 at 15:14:10. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Twins

При использовании в качестве прокси, данный сервер "срезает" часть контента (#18 ( https://code.rocket9labs.com/tslocum/twins/issues/18 ))

Решение не найдено, если требуется реверсивное проксирование, то лучше сразу использовать сервер gmid ( gemini://betahowto.duckdns.org/gemini_protocol:gmid )

Многозадачный сервер для протокола Gemini ( gemini://betahowto.duckdns.org/gemini_protocol ) с поддержкой кеширования, реверсивного проксирования и других функций. Написанный на языке Go.

Установка


go install code.rocketnine.space/tslocum/twins@latest

Пример маршрутизации общего IPv4 адреса доменов first.host.org и second.host.org на разные ресурсы Yggdrasil:

/home/twins/config.yaml


listen: "xx.xx.xx.xx:1965"
hosts:
  first.host.org:
    cert: /home/twins/first.host.org/cert.pem
    key: /home/twins/first.host.org/key.rsa
    paths:
      -
        path: /
        proxy: gemini-insecure://[xxx:xxxx:xxxx:xxxx::xxxx]:1965
  second.host.org:
    cert: /home/twins/second.host.org/cert.pem
    key: /home/twins/second.host.org/key.rsa
    paths:
      -
        path: /
        proxy: gemini-insecure://[xxx:xxxx:xxxx:xxxx::xxxx]:1966

По такому же принципу можно запустить службы на свободных локальных адресах IPv4 или использовать разный порт для каждого сервера.

На целевых (публичных) ресурсах Yggdrasil вместо разных портов, достаточно настроить ( gemini://betahowto.duckdns.org/yggdrasil:subnet_setting ).

Сертификаты в данном примере должны быть сконфигурированы на соответствующий домен, например для first.host.org:


openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem -days 365 -nodes -subj "/CN=first.host.org"

Для запуска указываем путь к бинарному файлу twins и вторым аргументом - путь к файлу конфигурации:


/home/twins/go/bin/twins -config /home/twins/config.yaml

Можно создать сервис:

/etc/systemd/system/twins.service


[Unit]
Description=twins
After=network.target

[Service]
Type=simple
User=twins
Group=twins
WorkingDirectory=/home/twins/
ExecStart=/home/twins/go/bin/twins -config /home/twins/config.yaml
StandardOutput=file:/home/twins/debug.log
StandardError=file:/home/twins/error.log
Restart=on-failure

[Install]
WantedBy=multi-user.target

А также добавить автозапуск:


systemctl daemon-reload
systemctl enable twins
systemctl start twins

Заметки

У сервера twins иногда бывают проблемы с кодировкой кириллических ресурсов, поэтому целевые хосты должны отдавать кодировку в заголовке:


text/gemini; charset=utf-8

Как указано в readme, важно также указать размер контента (size)

Чтобы отключить проверку сертификата, можно использовать псевдо-протокол gemini-insecure://

Ссылки

Домашняя страница проекта ( https://code.rocket9labs.com/tslocum/twins )

Материалы

https://code.rocket9labs.com/tslocum/twins/issues/18

gemini://betahowto.duckdns.org/gemini_protocol:gmid

gemini://betahowto.duckdns.org/gemini_protocol

gemini://betahowto.duckdns.org/yggdrasil:subnet_setting

https://code.rocket9labs.com/tslocum/twins

Навигация

Поиск

Главная страница

Редактировать

Проект β-Doku

Алиас

[0200::/7]

Alfis / Yggdrasil