💾 Archived View for ps.cities.yesterweb.org › uk › gmid-server-for-gemini-protocol.gmi captured on 2024-08-18 at 17:03:46. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-05-10)

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

Gmid - багатофункціональний сервер для Gemini

Gmid - багатофункціональний сервер з відкритим кодом для протоколу Gemini.

Зокрема, його зручно використовувати у якості проксі серверу для віртуальних хостів, аналогічно тому як цю функцію виконує Nginx для HTTP.

Це може бути зручно, коли немає змоги піднімати для кожного серверу маску підмережі, або коли сайт працює на VPS з одним виділеним IP.

Встановлення

Написаний Gmid на "C", перед його збіркою потрібно додати наступні бібліотеки:

apt install bison byacc

Буде правильним запускати і відповідно виконувати процес Gmid від окремого користувача, якого спочатку створимо та виконаємо вхід:

useradd -m gmid
su gmid

Клонуємо останню версію з офіційного дзеркала на GitHub і виконуємо компіляцію:

git clone https://github.com/omar-polo/gmid.git
cd gmid
./configure
make

Налаштування reverse-proxy

Нижче описаний приклад створення двох віртуальних хостів "host1.com" та "host2.com", які працюють на умовних адресах "1.2.3.4:1965" та "4.3.2.1:1965" відповідно.

Таким чином, файл конфігурації виглядатиме так:

server "host1.com" {

    listen on 0.0.0.0 port 1965

    cert "/home/gmid/host/host1.com/cert.pem"
    key "/home/gmid/host/host1.com/key.rsa"

    proxy {
        sni "host1.com"
        relay-to 1.2.3.4 port 1965
        verifyname off
    }
}

server "host2.com" {

    listen on 0.0.0.0 port 1965

    cert "/home/gmid/host/host2.com/cert.pem"
    key "/home/gmid/host/host2.com/key.rsa"

    proxy {
        sni "host2.com"
        relay-to 4.3.2.1 port 1965
        verifyname off
    }
}

Створення сертифікатів

На прикладі конфігурації вище, додамо само-підписаний сертифікат на прикладі "host1.com", необхідний для роботи протоколу Gemini.

Аналогічним способом створюється й сертифікат для "host2.com", замінивши значення атрибуту "CN":

mkdir /home/gmid/host/host1.com
cd /home/gmid/host/host1.com
openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem -days 3650 -nodes -subj "/CN=host1.com"

Автозапуск

Щоб наш проксі-сервер стартував разом з системою і працював як процес "systemd", додамо для Gmid юніт:

[Unit]
Description=gmid
After=network.target

[Service]
Type=simple
User=gmid
Group=gmid
WorkingDirectory=/home/gmid/
ExecStart=/home/gmid/gmid/gmid -c /home/gmid/gmid.conf -f -v
StandardOutput=file:/home/gmid/output.log
StandardError=file:/home/gmid/debug.log
Restart=on-failure

[Install]
WantedBy=multi-user.target

Оновлюємо конфігурацію та запускаємо сервер:

systemctl daemon-reload
systemctl enable gmid
systemctl start gmid

Посилання

Офіційна сторінка проекту

Дзеркало на GitHub

Дивіться також

Протокол Gemini як альтернатива HTTP