[OMV #6] Nginx – proxy, a dokładnie odwrotne

Adresy ip to podstawowa nazwa którą wpisujemy w przeglądarkę aby przejść do danej strony – w tym przypadku do odpowiednich kontenerów na naszym serwerze. Lecz przy dużej ilości takich stron robi się to kłopotliwy w zapamiętaniu, dlatego dobrze by było wprowadzić przypisanie nazw do naszych odpowiednich adresów IP. W tym celu wykorzystamy odwrotne proxy, a dokładnie narzędzie jakim jest nginx. Aby to też poprawnie działało musi być uruchomiony adguard wraz z ustawionym przepisywaniem DNS.

Ustawienie ADGuardHome

Przepisywanie DNS ustawiamy w adguard poprzez wybranie w górnym menu zakładki Filtry, a następnie przepisywanie DNS. Klikamy na dodaj przepisywanie DNS i w nowy okienku uzupełniamy pole nazwą domeny (najlepiej w formie *.nowanazwa.pl z tego względu że jak wpiszemy dowolną nazwę w przeglądarce z końcówką nowanazwa.pl to ruch zostanie przekierowany do naszego kontenera z nginx), a wkolejnym polu wpisujemy adres naszego serwera.

Kontener NGINX

Dodajemy kontener poprzez skrypt YAML – dodaje on dwie usuługi, aplikację oraz bazę danych mariadb:

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    volumes:
      - /Docker/Dane/nginxproxymanager/data:/data #/Docker/Dane zmieniamy na lokalizację naszego dysku. Jest to miejsce na przechowywanie danych z kontenera
      - /Docker/Dane/nginxproxymanager/letsencrypt:/etc/letsencrypt #/Docker/Dane zmieniamy na lokalizację naszego dysku. Miejsce na przechowywanie kluczy
    depends_on:
      - db
  db:
    image: 'jc21/mariadb-aria:latest'
    restart: always
    volumes:
      - /Docker/Dane/nginxproxymanager/mysql:/var/lib/mysql #/Docker/Dane zmieniamy na lokalizację naszego dysku. Miejsce na przechowywanie bazy danych
####
#
#     Default Administrator User login:
#     Email:    admin@example.com
#     Password: changeme
#
####

Przed uruchomieniem tego kontenera pamiętaj aby zmienić port obsługi OMV – dokonujemy tego w System->Warsztat i tam zmieniamy numer portu przez który dostajemy się do do GUI naszego serwera.

Teraz po uruchomieniu kontenera i wpisaniu w przeglądarkę nazwy naszej domeny zostaniemy przekierowani do tego kontenera.

Ustawienie nazw dla adresów IP

Aby przejść do konfiguracji naszego proxy wpisujemy w przeglądarce adres naszego serwera z portem :81. Zostaniemy poproszeni o wpisanie loginu i hasła – dane te są ustawione domyślnie i podałem je w treści skryptu YAML. Po pierwszym zalogowaniu polecam zmienić te dane dla naszego bezpieczeństwa.
Gdy jesteśmy zalogowani, przechodzimy do Proxy Hosts a następnie klikmay na Add proxy Host w celu dodania nazwy dla jednego z naszych adresów ip.
Otworzy nam się nowe okienko w którym to w nazwie domeny wpisujemy naszą nazwę przez jaką byśmy chcieli się dostawać do naszych zasobów. W polu IP wpisujemy adres IP naszego serwera, oraz port pod którym znajdują się odpowiednie zasoby. Niektóre interfejsy wymagać będą dostępu poprzez https, co też możemy zmienić, oraz ustawić SSL (dokonujemy tego w następnej zakładce). Aby jednak dodać SSL należy taki certyfikat wygenerować – sposób generowania takiego certyfikatu przedstawię w późniejszych wpisach.

Gdy zapiszemy konfigurację widzimy że nasza nazwa jest online. Klikając na nią otworzy się nowa zakładka w której to polu będzie wpisana nazwa naszego interfejsu a nie adres ip,i zostanie wczytany odpowiedni interfejs.