Instrukcja ma na celu przedstawienie podstawowej konfiguracji.
Wykorzystane narzędzia mają znacznie więcej możliwości oraz poruszane zagadnienia są bardziej skomplikowane niż mogą się wydawać na pierwszy rzut oka.
Niniejsza instrukcja ma na celu przedstawienia konfiguracji serwera stron internetowych (apache2) z wykorzystaniem dystrybucji ubuntu 22.04.
Do zrealizowania zadania wymagane jest wykupienie nazwy DNS w globalnym systemie DNS (w zależności od nazwy, koszt zaczyna się od kilku zł za pierwszy rok).
Przygotowanie środowiska:
W panelu web-owym OpenStack utworzenie dwóch instancji które będę miały dodany zewnętrzny pływający adres IP. Do instancji należy utworzyć grupę zabezpieczeń która będzie pozwalała na ruch na portach 443 oraz 80.
Przykładowa konfiguracja:
W celu konfiguracji powyższych założeń pomoce będę instrukcje:
https://docs.psnc.pl/pages/viewpage.action?pageId=130287749
https://docs.psnc.pl/pages/viewpage.action?pageId=117372270
https://docs.psnc.pl/pages/viewpage.action?pageId=117372677
Konfiguracji systemów:
Dla czytelności rozdzielę serwery na system A oraz system B.
Konfiguracja systemu A:
Code Block |
---|
|
sudo su –
apt update
apt upgrade
apt install mc apache2 certbot python3-certbot-apache
|
- Utworzenie katalogu oraz pliku index.html z zawartością witryny.
Code Block |
---|
|
mkdir /var/www/mojastrona
echo SerwerA > /var/www/mojastrona/index.html
|
Code Block |
---|
|
touch /etc/apache2/sites-enabled/strona.domena.pl.conf
mcedit /etc/apache2/sites-enabled/strona.domena.pl.conf
<VirtualHost *:80>
DocumentRoot /var/www/mojastrona
ServerName www.manual.pietaadmin.pl
ServerAlias manual.pietaadmin.pl
ServerAdmin admin@pietaadmin.pl
</VirtualHost>
|
- Restart apache systemctl restart apache2 oraz weryfikacja działania strony.
Aktywacja moduły SSL
Code Block |
---|
a2enmod ssl
systemctl restart apache2
|
Konfiguracja oraz wygenerowanie certyfikatu SSL na 90 dni jak i przekierowanie ruchu http na https zostanie automatycznie zrobione po wydaniu polecenia:
Code Block |
---|
certbot --apache -d www.manual.pietaadmin.pl -d manual.pietaadmin.pl |
Konfiguracja systemu B:
Code Block |
---|
|
sudo su –
apt update
apt upgrade
apt install mc apache2
|
- Utworzenie katalogu oraz pliku index.html z zawartością witryny. Na potrzeby konfiguracji i weryfikacji poprawności działania zawartość będzie inna. Docelowo będą to identyczne pliki.
Code Block |
---|
|
mkdir /var/www/mojastrona
echo SerwerB > /var/www/mojastrona/index.html
|
Należy skopiować pliki z systemy A do systemu B. Pliki do skopiowania:
Code Block |
---|
|
/etc/apache2/sites-enabled/strona.domena.pl.conf
/etc/apache2/sites-enabled/strona.domena.pl-le-ssl.conf
Cały katalog:
/etc/letsencrypt/archive/www.manual.pietaadmin.pl/
|
- Aktywacja moduły SSL oraz Rewrite
Code Block |
---|
a2enmod ssl
a2enmod rewrite
systemctl restart apache2 |
Pliki na potrzeby SSL zostały zapisane w lokalizacji /etc/ssl/www
Przykładowa konfiguracja pozostałych plików:
Code Block |
---|
root@www-lb-manual-2:/etc/apache2# cat /etc/apache2/sites-enabled/strona.domena.pl.conf
<VirtualHost *:80>
DocumentRoot /var/www/mojastrona
ServerName www.manual.pietaadmin.pl
ServerAlias manual.pietaadmin.pl
ServerAdmin admin@pietaadmin.pl
RewriteEngine on
RewriteCond %{SERVER_NAME} =manual.pietaadmin.pl [OR]
RewriteCond %{SERVER_NAME} =www.manual.pietaadmin.pl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
root@www-lb-manual-2:/etc/apache2# cat /etc/apache2/sites-enabled/strona.domena.pl-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/mojastrona
ServerName www.manual.pietaadmin.pl
ServerAlias manual.pietaadmin.pl
ServerAdmin admin@pietaadmin.pl
SSLCertificateFile /etc/ssl/www/fullchain.pem
SSLCertificateKeyFile /etc/ssl/www/privkey.pem
</VirtualHost>
</IfModule>
|
Konfiguracja mechanizmu równoważenia obciążenia (load-balancer).
Konfiguracje należy wykonać za pomocą przeglądarki mozilla firefox (w chwili pisania tej instrukcji na innych przeglądarkach występował błąd w kreatorze LB)
W panelu web-owym OpenStack Projekt -->Sieć-->Load Balancers -->Utwórz
- Wskazujemy podsieć wewnętrzną naszych serwerów raz dodajemy nazwę:
- W kolejnym kroku wybieramy serwery oraz dodajmy port.
- Czekamy aż status będzie na Online Aktywny i dodajemy pływający adres IP z sieci zewnętrznej.
- Na końcu należy nakierować nazwy DNS na pływający adres IP load balancera.
Należy pamiętać, że darmowy certyfikat SSL lets encrypt jest ważny przez 90 dni. Należy pamiętać o odnowieniu lub od razu zautomatyzować to zadanie. Można również wykorzystać płatny certyfikat SSL.