mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-03-11 03:52:40 +00:00
add environmental out-proxy config example
This commit is contained in:
parent
dc12ef0976
commit
ede9dad81b
1 changed files with 32 additions and 3 deletions
|
|
@ -133,6 +133,7 @@ ExecStart=/usr/local/bin/kellnr start --registry-data-dir /home/kellnr \
|
|||
# в мене використовується багатомережний origin
|
||||
# --origin-host=.ua.srv \
|
||||
# --origin-port=8180 \
|
||||
# деталізація журналів
|
||||
-l warn
|
||||
|
||||
Environment="NO_COLOR=1"
|
||||
|
|
@ -159,8 +160,9 @@ ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8180 prot
|
|||
setsebool -P httpd_can_network_connect 1
|
||||
semanage port -a -t http_port_t -p tcp 8180
|
||||
```
|
||||
* а дані профілю - розмістити в канонічних теках `/var/lib/kellnr` і `/var/log/kellnr` відповідно (з правами `kellnr:kellnr`)
|
||||
|
||||
Керування сервісом відбувається за класикою:
|
||||
Керування сервісом відбувається класично:
|
||||
|
||||
* `systemctl restart kellnr` - (пере) запуск
|
||||
* `systemctl enable kellnr` - авто-старт з системою
|
||||
|
|
@ -174,9 +176,36 @@ semanage port -a -t http_port_t -p tcp 8180
|
|||
|
||||
### Налаштування вихідного проксі
|
||||
|
||||
> Рішення нижче виявилось робочим частково: наприклад, завантажити крейт (cargo install) не виде, тільки підтягнути до ного залежності (cargo update). Також цей сценарій чомусь не зберігає кешовані файли, тільки наповнює індекс в БД. Тому від описаного нижче способу я відмовився бо він потребує доопрацювання вибіркових шляхів API через `/etc/hosts` та [config.json](https://github.com/rust-lang/crates.io-index/blob/master/config.json) або рішення програмними засобами.
|
||||
На моєму сервері немає Інтернет-інтерфейсу і я не можу забрати пакунки з crates.io напряму. Kellnr також поки не підтримує обгортку сокетів програмно, тому я створив відповідний тікет і згодом отримав відповідь з порадою використовувати змінні оточення (які підтримуються імплементацією https://crates.io/crates/reqwest)
|
||||
=> https://github.com/kellnr/kellnr/issues/1096#issuecomment-3968553238
|
||||
|
||||
На моєму сервері немає Інтернет-інтерфейсу, тому я не можу забрати пакунки з crates.io напряму. Схоже, що Kellnr також поки не підтримує таку функціональність, тому я створив відповідний тікет #1096 і згодом знайшов тимчасове рішення у зв'язці з Nginx - засобами якого я "підставляю" потрібні заголовки згідно до URI:
|
||||
Змінні оточення звичайно вказуються через `export` або префіксом команди `kellnr`:
|
||||
|
||||
``` bash
|
||||
HTTP_PROXY=http://[::1]:8118 \
|
||||
HTTPS_PROXY=http://[::1]:8118 \
|
||||
NO_PROXY=localhost,127.0.0.1,::1,202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148,505:6847:c778:61a1:5c6d:e802:d291:8191 \
|
||||
/usr/local/bin/kellnr
|
||||
```
|
||||
|
||||
Я користуюсь systemd і його фрагмент `[Service]` виглядає так:
|
||||
|
||||
``` /etc/systemd/system/kellnr.service
|
||||
[Service]
|
||||
Environment="HTTP_PROXY=http://[::1]:8118"
|
||||
Environment="HTTPS_PROXY=http://[::1]:8118"
|
||||
Environment="NO_PROXY=localhost,127.0.0.1,::1,202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148,505:6847:c778:61a1:5c6d:e802:d291:8191"
|
||||
```
|
||||
* таким чином, будь-який запит здійснений процесом `kellnr` - буде перенаправлено через відповідний проксі, окрім запитів на мережі, вказані в `NO_PROXY` (у мене там адреси сервера Yggdrasil і Mycelium бо процес направлятиме на них деякі службові запити API)
|
||||
|
||||
#### Проксування засобами Nginx
|
||||
|
||||
Рішення нижче виявилось робочим лише частково: наприклад, завантажити крейт (`cargo install`) не вийде, тільки підтягнути до нього залежності (`cargo update`). Також цей сценарій чомусь не зберігає кешовані файли, тільки наповнює індекс в БД.
|
||||
|
||||
Тому від описаного нижче способу я згодом відмовився бо він потребує доопрацювання вибіркових шляхів API через `/etc/hosts` і додаткових правил для config.json:
|
||||
=> https://github.com/rust-lang/crates.io-index/blob/master/config.json
|
||||
|
||||
Коротше, цей спосіб - костиль, при чому кривий, але я лишу його для історії, якщо вам з якихось причин не підходить спосіб зі змінними оточення або потрібен тюнінг окремих URI.
|
||||
|
||||
``` /etc/nginx/sites-available/default
|
||||
server {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue