100 lines
3.9 KiB
Markdown
100 lines
3.9 KiB
Markdown
# Anleitung für Proxy Server in der FET
|
|
## Überblick
|
|
Der Proxy ist aufgeteilt in zwei Git Projekte auf git.fet.at
|
|
1. [Openresty mit Erweiterungen](https://git.fet.at/andis/openrestyextended)
|
|

|
|
* 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.
|
|
2. [Konfiguration & Doku](https://git.fet.at/andis/triton2_config/)
|
|

|
|
Wichtige Teile sind:
|
|
|
|
* *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
|
|
|
|
|
|
### Deployen via Portainer
|
|
#### Portainer installieren
|
|
Falls Portainer noch gar nicht installiert ist:
|
|
[Portainer from scratch](https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux)
|
|
|
|
Falls Portainer schon installiert ist und die neue Docker Umgebung verwaltet werden soll
|
|
[Portainer Agent installieren](https://docs.portainer.io/v/ce-2.9/start/install/agent/docker/linux)
|
|
|
|
#### Stack deployen
|
|

|
|
fghj
|
|

|
|
###
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Es gibt zwei Varianten dieses Projekt zu nutzen.
|
|
Variante 1 ist, das projekt lokal zu clonen und dann die Konfigurationsordner mit lokalem BIND an den Container zu binden.
|
|
Der Vorteil von Variante 1 ist, dass lokal Änderungen an der Konfiguration durchgeführt werden können.
|
|
Der Nachteil daran ist, dass darauf geachtet werden muss lokale Änderungen wieder zu pushen und die Vorteile des Containers nicht voll genutzt werden.
|
|
## Variante 1
|
|
git clone https://git.fet.at/andis/triton2_config
|
|
|
|
docker-compose up
|
|
|
|
|
|

|
|
|
|
|
|
## 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; |