mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
initial commit
This commit is contained in:
commit
259fee630b
127 changed files with 7811 additions and 0 deletions
122
public/uk/gmid-server-for-gemini-protocol.gmi
Normal file
122
public/uk/gmid-server-for-gemini-protocol.gmi
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
# 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" відповідно.
|
||||
|
||||
Таким чином, файл конфігурації виглядатиме так:
|
||||
|
||||
``` /home/gmid/gmid.conf
|
||||
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 юніт:
|
||||
|
||||
``` /etc/systemd/system/gmid.service
|
||||
[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
|
||||
```
|
||||
|
||||
* "-f" - запуск в режимі "foreground", інакше процес стартуватиме у фоновому режимі без журналювання
|
||||
* "-v" - або "verbose" для звітів відлагодження
|
||||
|
||||
Оновлюємо конфігурацію та запускаємо сервер:
|
||||
|
||||
```
|
||||
systemctl daemon-reload
|
||||
systemctl enable gmid
|
||||
systemctl start gmid
|
||||
```
|
||||
|
||||
## Посилання
|
||||
|
||||
=> gemini://gmid.omarpolo.com Офіційна сторінка проєкту
|
||||
=> https://github.com/omar-polo/gmid Дзеркало на GitHub
|
||||
|
||||
## Дивіться також
|
||||
|
||||
=> gemini-protocol-as-http-alternative.gmi Протокол Gemini як альтернатива HTTP
|
||||
Loading…
Add table
Add a link
Reference in a new issue