Trochę już temu pisałem jak zamienić komputer z systemem Linux (na przykładzie Raspberry Pi i Raspbian/Debian) w serwer WWW (VPS). Później pojawiła się informacja jak dodać certyfikat SSL.

Dziś wrócimy do tego tematu – będziemy dodawać dodatkowe domeny…

Apache2 – dodatkowe domeny

Domen (i stron, choć nie jest to tożsame) do naszego serwera możemy dodać właściwie dowolna ilość:

  • Domena – to nazwa pod którą widoczna będzie np. nasza strona w sieci
  • Strona WWW – to to, co się wyświetla gdy wpiszecie w przeglądarce jakiś adres

W przypadku Apache jest to oczywiście rozróżniane:

ServerAlias – czyli wiele domen, jedna strona

W przypadku, gdy chcemy by nasza strona była dostępna pod różnymi adresami (domenami/subdomenami) korzystamy z „ServerAlias”.

Dobrym przykładem może być przedrostek „www” przed nazwą domeny:

www.webinsider.pl
  • www – subodmena
  • webinsider.pl – domena

I niezależnie czy wpiszecie „www.webinsider.pl” czy „webinsider.pl” – traficie tutaj (tak akurat jest ustawiony serwer, choć by być bardziej precyzyjnym, to należałoby napisać, że z subdomeny „www” za pomocą przekierowania traficie na domenę webinsider.pl).

Czasem niektórzy zapominają o tym, że „www” to tak naprawdę subdomena, którą trzeba przypisać do domeny – nawet administratorzy różnych/większych serwerów/stron. I np. działa adres z www na początku, ale już sama domena (bez „www”) nie działa… ;-)

Oczywiście nie musicie ograniczać się tylko do „www” – macie całkiem sporą dowolność…

Wildcard, czyli *.webisnider.pl

Wildcard – to kolejny ciekawy element, pozawala na „przechwycenie” wszystkich „nieznanych” domen czy subdomen.

Możecie sprawdzić działanie wchodząc np. wasze-imie.webinsider.pl – jak nic się w międzyczasie nie zmieni, to traficie na główną stronę.

Dodajemy alias

OK, teoria za nami – działamy…

Edytujemy plik konfiguracyjny, w naszym wypadku będzie to domyślny plik konfiguracyjny serwera/hosta, w tym celu edytujemy plik:

/etc/apache2/sites-enabled/000-default

Alternatywnie – chyba w APache2.4 tak jest) może być z „.conf” na końcu:

/etc/apache2/sites-enabled/000-default.conf

Interesuje nas ten fragment:

<VirtualHost *:80>
ServerAdmin adres@email
DocumentRoot /var/www/public_html
ServerName rembiejewski.pl
ServerAlias www.rembiejewski.pl
ServerAlias [dodatkowa_domena]
ServerAlias *.rembiejewski.pl

Znajdziemy tu m.in.:

  • DocumentRoot – ścieżkę do plików dla danej domeny
  • ServerName – domena główna
  • SerwerAlias – subdomena (w tym wypadku „www.”) oraz wildcard (*.webinsider.pl)

Po zmianach pamiętajcie by przeładować konfigurację Apache:

sudo service apache2 reload

Oraz dodać odpowiednie wpisy w DNS’ach (rekordy A lub CNAME), np.:

  • www.rembiejewski.pl CNAME rembiejewski.pl
  • [subdomena].rembiejewski.pl A [Adres IP serwera]
  • *.rembiejewski.pl A [Adres IP serwera]

VirtualHost – czyli nowa domena i niezależna strona

Trochę inaczej sytuacja wygląda gdy chcemy dodać nie tylko dodatkową domenę, ale i niezależną stronę. Choć oznacza to trochę więcej pracy niż dodanie odpowiedniego wpisu „SerwerAlias”, to nie jest to coś z czym nie poradzi sobie – z odpowiednimi wskazówkami – nawet początkujący… :-)

Zaczynamy nie od edycji plików z konfiguracją, a od kilku operacji w konsoli.

Tworzymy katalog dla nowej domeny:

sudo mkdir -p /var/www/[nazwa_domeny]/public_html

Nadajemy odpowiednie uprawnienia (krok ten można wykonać później, np. po skopiowaniu plików strony):

sudo chown -R www-data:www-data /var/www/[nazwa_domeny]/public_html
sudo chmod -R 755 /var/www/[nazwa_domeny]/public_html

Tworzymy plik konfiguracyjny dla nowej domeny – posiłkujemy się istniejącym plikiem:

sudo cp /etc/apache2/sites-available/000-default /etc/apache2/sites-available/[nazwa_domeny]

Teraz możemy przejść do edycji pliku konfiguracyjnego:

/etc/apache2/sites-available/[nazwa_domeny]

I modyfikujemy:

<VirtualHost *:80>
ServerAdmin adres@email
DocumentRoot /var/www/[nazwa_domeny]/public_html
ServerName [nazwa_domeny]
ServerAlias www.[nazwa_domeny]
ServerAlias *.[nazwa_domeny]

Musimy jeszcze aktywować nową domenę na serwerze:

sudo a2ensite [nazwa_domeny]

Na koniec przeładowanie konfiguracji serwera:

sudo service apache2 reload

I to wszystko – teraz wystarczy skopiować pliki do katalogu nowej domeny:

/var/www/[nazwa_domeny]/public_html

Oraz ustawić odpowiednie wpisy w DNS:

  • [nazwa_domeny] A [Adres IP serwera]
  • www.[nazwa_domeny] CNAME [nazwa_domeny]
  • *.[nazwa_domeny] A [Adres IP serwera]

Oczywiście jest to podstawowa konfiguracja, i jest sporo dodatkowych opcji które można ustawić – ale to już temat może na jakiś kolejny wpis… ;-)

Połączenie szyfrowane (SSL)

Jeśli chcemy dodać obsługę SSL (połączenie szyfrowane) to np. za wpisem:

<VirtualHost *:80>
...
</VirtualHost>

dodajemy jeszcze:

<VirtualHost *:443>
ServerName [DOMENA]
ServerAlias *.[DOMENA]

DocumentRoot /var/www/[DOMENA]/public_html
ErrorLog ${APACHE_LOG_DIR}/[DOMENA]_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/[DOMENA]_ssl_access.log combined

SSLEngine on
SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

Oczywiście należy podać ścieżki do certyfikatu modyfikując ścieżki:

SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Tu skorzystałem z „własnego certyfikatu”

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk