Nginx, znany ze swojej wydajności, to serwer HTTP oraz serwer proxy, który doskonale radzi sobie z obsługą dużego ruchu internetowego. Jest wszechstronny – potrafi serwować zarówno statyczne, jak i dynamiczne treści, a jego zaawansowane funkcje obejmują równoważenie obciążenia, buforowanie oraz przekierowywanie adresów URL. Umieszczenie Nginx w kontenerze Dockera to krok w stronę izolacji, łatwiejszego przenoszenia i wygodniejszego zarządzania aplikacją.
Ten poradnik poprowadzi Cię przez proces uruchamiania serwera Nginx w kontenerze Docker na systemie Ubuntu 22.04.
Niezbędne Elementy
- Serwer z systemem Ubuntu 22.04 i uprawnieniami administratora (root).
- Zainstalowany Docker.
Instalacja i Konfiguracja Nginx w Kontenerze
Instalacja Nginx w Systemie
Zacznij od zainstalowania Nginx w systemie operacyjnym, używając poniższych komend:
sudo apt update
sudo apt install nginx
Tworzenie Pliku Dockerfile
W wybranym katalogu utwórz plik o nazwie Dockerfile
:
sudo nano Dockerfile
Wklej do niego następującą konfigurację:
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/default.conf
Warto zwrócić uwagę, że default.conf
jest nazwą pliku konfiguracyjnego Nginx. Jeśli używasz innego nazewnictwa, zmień je w poleceniu COPY
.
Uruchomienie Kontenera
Zbuduj obraz Dockera, używając następującej komendy:
sudo docker build -t nginx .
Następnie, uruchom kontener Nginx:
sudo docker run -d --name nginx -p 80:80 nginx
-d
uruchamia kontener w tle.--name nginx
nadaje kontenerowi nazwę „nginx”.-p 80:80
przekierowuje port 80 kontenera na port 80 hosta.
Konfiguracja Zapory Sieciowej
Jeżeli na serwerze działa zapora, otwórz port 80, aby umożliwić dostęp do Nginx:
sudo ufw allow 80
Weryfikacja Działania Nginx
Sprawdź, czy Nginx działa poprawnie, wykonując poniższe kroki:
- Otwórz przeglądarkę i wpisz adres URL http://localhost.
- Powinna pojawić się domyślna strona powitalna Nginx.
Zmiana Konfiguracji Nginx
Aby zmodyfikować konfigurację Nginx, wykonaj kolejno poniższe kroki:
- Zatrzymaj kontener:
sudo docker stop nginx
. - Edytuj plik
default.conf
w katalogu roboczym. - Zaktualizuj obraz:
sudo docker build -t nginx .
. - Uruchom ponownie kontener:
sudo docker run -d --name nginx -p 80:80 nginx
.
Zarządzanie Kontenerem
Wyświetlanie Kontenerów
Aby zobaczyć listę uruchomionych kontenerów, użyj:
sudo docker ps
Zatrzymywanie Kontenera
Kontener Nginx zatrzymasz, wpisując:
sudo docker stop nginx
Usuwanie Kontenera
Aby usunąć kontener Nginx, użyj:
sudo docker rm nginx
Usuwanie Obrazu
Obraz Nginx usuniesz za pomocą komendy:
sudo docker rmi nginx
Konfiguracja Protokołu HTTP/2
W celu włączenia obsługi HTTP/2 w Nginx, wykonaj poniższe kroki:
- Zainstaluj bibliotekę OpenSSL:
sudo apt install libssl-dev
. - Zbuduj obraz Dockera, używając zmodyfikowanego pliku
Dockerfile
:
FROM nginx:latest
RUN apt-get update && \
apt-get install -y libssl-dev && \
apt-get clean
COPY ./default.conf /etc/nginx/conf.d/default.conf
Konfiguracja SSL/TLS
Aby zabezpieczyć połączenie, skonfiguruj SSL/TLS w Nginx:
- Wygeneruj certyfikat i klucz:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt
. - W pliku
default.conf
dodaj poniższe sekcje:
listen 443 ssl;
ssl_certificate /path/to/nginx.crt;
ssl_certificate_key /path/to/nginx.key;
Podsumowanie
Uruchomienie Nginx w kontenerze Docker na systemie Ubuntu 22.04 zapewnia wiele korzyści, takich jak izolacja, przenośność i uproszczone zarządzanie. Ten poradnik szczegółowo omówił proces instalacji, konfiguracji i uruchomienia kontenera Nginx. Dostosuj konfigurację do swoich potrzeb i pamiętaj o właściwym zarządzaniu kontenerem. Wykorzystaj potęgę konteneryzacji Dockera, aby twoje aplikacje działały sprawniej i wydajniej.
Najczęściej Zadawane Pytania
- Czym jest Docker? Docker to platforma do konteneryzacji, która umożliwia pakowanie i uruchamianie aplikacji w odizolowanych środowiskach (kontenerach).
- Jakie korzyści płyną z używania kontenerów Docker? Kontenery Docker gwarantują izolację, przenośność, łatwość wdrażania i spójność środowiska.
- Jak zainstalować Docker na Ubuntu? Użyj kolejnych poleceń:
sudo apt update
,sudo apt install curl
,curl -fsSL https://get.docker.com -o get-docker.sh
,sh get-docker.sh
,sudo systemctl start docker
. - Jak zbudować obraz Docker? W katalogu zawierającym
Dockerfile
wpisz:docker build -t NAZWA_OBRAZU .
. - Jak uruchomić kontener Docker? Uruchom polecenie:
docker run -d -p HOST_PORT:KONTENER_PORT NAZWA_OBRAZU
. - Jak sprawdzić działanie Nginx? Wpisz w przeglądarce adres: http://localhost.
- Jak modyfikować konfigurację Nginx w kontenerze? Zatrzymaj kontener, zmień
default.conf
, zaktualizuj obraz i uruchom kontener. - Jak skonfigurować HTTP/2? Zainstaluj OpenSSL, przebuduj obraz i uruchom ponownie kontener.
- Jak ustawić SSL/TLS? Wygeneruj certyfikat i klucz, zmodyfikuj
default.conf
i uruchom ponownie kontener. - Jak zarządzać kontenerami? Używaj poleceń:
docker ps
,docker stop
,docker rm
idocker rmi
.