nginx-demo/RAPORT.md
2025-11-10 15:31:14 +01:00

71 lines
2.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Konfiguracja reverse proxy na Linuxie z użyciem Nginx
## Cel
---
## 1. Stworzenie prostych aplikacji webowych
Jako że nie jest to główna część projektu, a jedynie jego element to aplikacje są bardzo proste
### Java
### .NET Core
Do tej demonstracji została użyta wersja dotnet 8.0.
Aplikacja składa się z dwóch części:
- dotnet.csproj zawierającej ustawienia projektu
- Program.cs zawiejącej kody który zostanie wykonany i uruchomi prosty serwer HTTP
### Docker
Obydwie aplikacje uruchomione są w dockerze, rozwiązanie to ma kilka zalet
- pozwala na łatwą reprodukcją środowiska na innej maszynie. Na przykład na innym komputerze, lub na maszynie wirtualnej w laboratorium
- ułatwia późniejszą konfigurację z Nginx (nie trzeba konfigurować oddzielnych adresów ani portów, dla kilku równoległych aplikacji)
- ułatwia uruchomienie całego środowiska (całość można uruchomić jedną komendą)
Każda aplikacja ma przygotowany plik `Dockerfile`, który jest wykorzystywany przez dockera do stworzenia kontera na podstawie kodu źródłowego.
Na potrzeby projektu plik `Dockerfile` jest mocno uproszczony i w zasadzie tylko uruchamia polecenie `dotnet run` dla c#, oraz .... dla java.
---
## 2. Stworzenie prostej sieci konterów z aplikacjami
Ponieważ do uruchomienia aplikacji używamy dockera, najprostszym sposobem na utworzenie wspólnej podsieci dla aplikacji i nginx jest użycie docker compose.
Docker compose jest narzędziem do definiowania i uruchamianiania wilokontenerowej aplikacji w dockerze.
- Normalnie w dockerze, uruchamia się kontener komendą `dotnet run`, ale gdy aplikacja potrzebuje kilku kontenerów (jak serwer, reverse proxy, ...) zarządzanie nimi staje się skomplikowane.
- Docker compose pozwala zdefiniować wszystkie kontenery i jak one oddziałają ze sobą w jednym pliku i uruchomienie wszystkiego jedną komendą
---
## 3. Stworzenie instancji reverse proxy
### Dodanie kontera
### Konfiguracja reverse proxy
---
## 4. Przekierowanie zapytań do odpowiednich aplikacji w zależności od nagłówków HTTP
### Konfiguracja reverse proxy
---
## 5. Load Balancing
### Utworzenie kopii kontenerów z aplikacjami
W ramach prezentacji działania reverse proxy kilka instancji tej samej aplikacja zostanie uruchomione na tej samej maszynie, w ramach podsieci dockera można o nich myśleć jako osobne maszyny wirtualne o osobnych adresach ip
### Konfiguracja reverse proxy
---
## 6. Rate Limiting
### Konfiguracja reverse proxy