Назад

Улучшая свою инфраструктуру появилась потребность завести обыкновенный прокси-сервер. Самая тривиальная история перенаправляющая трафик из мира куда-нибудь в дебри моей сети. Это достаточно частая и весьма простая задача, решаемая, как правило, конфигом nginx и парой команд для выдачи сертификата. Я достаточно часто с этим сталкиваюсь и делать это руками, честно говоря, надоело

Мне нужно было легкое решение, с гибким и простым конфигом и с возможностью выдавать и автоматически обновлять сертификаты Lets Encrypt.

И я его нашел — Reproxy. Написан на Go, умеет все выше перечисленное, а также имеет плотную интеграцию с Docker.

Пример моей конфигурации для запуска в Docker, но для проксирования на другой сервер.

Конфигурация docker-compose.yml:


services:
  reproxy:
    image: umputun/reproxy:master
    ports:
      - "80:8080"
      - "443:8443"
    volumes:
      - ".docker/configs/reproxy/reproxy.yml:/srv/reproxy.yml"
      - ".docker/configs/reproxy/ssl:/srv/var/ssl"
    environment:
      - TZ=UTC
      - FILE_ENABLED=true
      - DOCKER_ENABLED=false
      - SSL_TYPE=auto
      - SSL_ACME_EMAIL=a@repin.pw
      - SSL_ACME_LOCATION=/srv/var/ssl
      - KEEP_HOST=true

Конфигурация самого reproxy:


git.repin.pw:
  - { route: "(.*)", dest: "http://127.0.0.1/$1" }

Ключ конфига — домен, который видит reproxy и автоматически регистрирует сертификаты. При этом он сам периодически проверяет и применяет изменения на лету.

Следующий пост

Наконец-то завершил сборку своего домашнего дешман-китай сервера

Наконец-то завершил сборку своего домашнего дешман-китай сервера

Цели такой сборки: легкий инференс, облако, репозиторий и песочница c Docker Swarm на борту для своих проектов. С чем, кстати, за год работы она успешно справляется. Также к критериям можно отнести це

Предыдущий пост

Документация проекта в моем понимании — это не только инструкция по установке и описание API, это еще и соглашения, архитектура, стиль кода, схемы... любая полезная информация

Документация проекта в моем понимании — это не только инструкция по установке и описание API, это еще и соглашения, архитектура, стиль кода, схемы... любая полезная информация

Где все это хранить? Есть разные варианты: от корпоративного облака до хранения в самом репозитории проекта, но в моем случае оказалось все сложнее. Во-первых, микро-сервисы: вариант хранения в репози