Anleitung für Proxy Server in der FET
Überblick
Der Proxy ist aufgeteilt in zwei Git Projekte auf git.fet.at
- Der wichtigste Teil ist nginx.conf diese wird ins Dockerimage gepackt. Diese sollte nicht zwischendurch verändert werden.
- Dockerfile in diesem Dockerfile sind alle Schritte für die Vorbereitung des Images mit openresty.
- conf.d enthält die Konfiguation der Seiten und wird nach /etc/nginx/conf.d kopiert / gemappt
- snippets enthält snippets die für die kürzere Konfiguration genutzt werden können. Diese sind fix ins Dockerimage zu kopieren. In dem Ornder im Image sind noch andere Config Files. ggf. können ergänzende Dateien in einen SubFolder gemappt werden
- Dockerfile das Dockerfile erzeugt das Image, das bei docker-compose genutzt werden soll. Achtung, dieses Dockerfile nutzt das Image, dass im ersten Projekt erstellt wird als Basis. Wenn die Docker registry nicht zur Verfügung steht müssen beide neu erzeugt werden.
Installation
Docker
Damit dieses Projekt genutzt werden kann ist eine docker Installation erforderlich. Dafür einfach Google mit Docker-ce + dem jeweiligen Betriebssystem nutzen.
Für Debian sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Überprüfen ob das geklappt hat mit: sudo docker run hello-world
Variante: Deployen via Portainer
Der Vorteil das Projekt so zu deployen ist, dass es sehr schnell geht und ein grafisches Interface zur Verfügung steht.
Portainer installieren
Falls Portainer noch gar nicht installiert ist: Portainer from scratch
Falls Portainer schon installiert ist und die neue Docker Umgebung verwaltet werden soll Portainer Agent installieren
Stack deployen
Mit diesem Befehl wird direkt das file "docker-compose.yml" deployed.
Alernativ kann auch der Inhalt aus dem docker-compose.yml in den Editor in Portainer kopiert werden.
Variante diekt clonen + docker-compose
git clone https://git.fet.at/andis/triton2_config
docker-compose up
Updates
Wenn der Code gepusht wird und keine Fehler in der Konfiguration sind wird das neueste Template auf die Docker registry gepusht. Jenkins Pipeline
dann kann einfach mit docker das neueste Image deployd werden. Besonders mit Portainer ist das einfach.
Bind
Wenn das Projekt auf dem Server gecloned ist kann auch die conf.d mit bind in den Container gemountet werden. Achtung Änderungen am Image können dann weniger leicht deployed werden. # bei der Produktivvariante macht es Sinn hier einen Ordner zu mappen # zB: /srv/conf.d/:/etc/nginx/conf.d/
Einrichten einer externen Seite:
In diesem Projekt sind mehrere Snippets vorbereitet, die genutzt werden können um eine externe Seite einzurichten. Für eine einfache externe Seite verwenden wir "default_proxy"
Snippet default_proxy.conf location / { include proxy.conf; include secure.conf; proxy_buffering off; proxy_pass http://$proxy_host:$proxy_port; } Die zugehörige Konfiguration sieht so aus: server { listen 443 ssl; server_name fet.at; set $proxy_host fetsite21; set $proxy_port 8001; include ssl.conf; include default_proxy.conf; proxy_set_header Host fet.at; } Es ist nicht notwendig, das Zertifiat zu erzeugen oder einen Endpunkt für den Port 80 zu konfigurieren. Dies ist bereits in der default.conf erledigt. Das SSL Zertifkat wir bezogen wenn die Url das erste mal aufgerufen wird.
include internal_proxy.conf;

