Virtual host'lar və SSL ilə web-serverlərin qurulması
1. Ətraf mühitin hazırlanması
İndi hər şeyi bir yerə toplamağın vaxtıdır. Bu gün bir neçə virtual host ilə server quracağıq və onlara HTTPS qoşacağıq. Test edəcəyik, səhvləri düzəldəcəyik və son sazlamaları həyata keçirəcəyik.
Məqsədimiz
Bu layihədə bir serverdə iki sayt yerləşdirəcəyik:
- example.com
- test.com
Hər bir sayt üçün virtual host yaradacaq, HTTPS qoşacaq və debugging addımlarını və işin yoxlanmasını göstərəcəyik. Hazırsınız? Gəlin başlayaq!
Hazırlıq
Başlamazdan əvvəl əmin olaq ki, hər şey düzgün sazlanıb:
Sizin artıq quraşdırılmış web-serveriniz var (Nginx və ya Apache).
Əgər Nginx istifadə edirsinizsə:
sudo apt-get update sudo apt-get install nginx
Yaxud Apache:
sudo apt-get update sudo apt-get install apache2
SSL ilə işləmək üçün Certbot paketi quraşdırılıb.
Nginx üçün:
sudo apt-get install certbot python3-certbot-nginx
Apache üçün:
sudo apt-get install certbot python3-certbot-apache
Serverə girişiniz var və orada example.com və test.com domenləri üçün DNS sazlanıb, ya da testlər üçün
/etc/hosts
-dan istifadə edə bilərsiniz.
2. Hər bir sayt üçün direktoriyanın qurulması
Saytlarımız üçün direktoriyalar və fayllar yaratmağa başlayaq.
Adım 1: Saytlar üçün qovluqların yaradılması
sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com
Adım 2: Test HTML-fayllarının yaradılması
Hər bir sayt üçün sadə HTML-fayl yaradaq:
example.com
sudo nano /var/www/example.com/index.html
Mündəricat:
<!DOCTYPE html>
<html>
<head>
<title>Example.com-a xoş gəlmisiniz</title>
</head>
<body>
<h1>Bu example.com-dur</h1>
<p>Example.com saytına xoş gəlmisiniz! Sayt SSL ilə qorunur və fəaliyyətdədir!</p>
</body>
</html>
test.com
sudo nano /var/www/test.com/index.html
Mündəricat:
<!DOCTYPE html>
<html>
<head>
<title>Test.com-a xoş gəlmisiniz</title>
</head>
<body>
<h1>Bu test.com-dur</h1>
<p>Test.com saytına xoş gəlmisiniz! Sayt SSL ilə qorunur və fəaliyyətdədir!</p>
</body>
</html>
3. Virtual Hostların Sazlanması
Hər bir sayt üçün ayrıca konfiqurasiya faylı yaradacağıq.
Addım 1: Nginx üçün Sazlama
example.com
sudo nano /etc/nginx/sites-available/example.com
Məzmun:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
test.com
sudo nano /etc/nginx/sites-available/test.com
Məzmun:
server {
listen 80;
server_name test.com www.test.com;
root /var/www/test.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Konfiqurasiyanı aktiv edirik:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
Serveri yenidən işə salırıq:
sudo nginx -t
sudo systemctl reload nginx
Addım 2: Apache üçün Sazlama
example.com
sudo nano /etc/apache2/sites-available/example.com.conf
Məzmun:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
test.com
sudo nano /etc/apache2/sites-available/test.com.conf
Məzmun:
<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com
<Directory /var/www/test.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Konfiqurasiyaları aktiv edirik:
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2
4. Saytlar üçün HTTPS qurulumu
İndi hər iki sayt üçün Let’s Encrypt vasitəsilə SSL əlavə edəcəyik.
sudo certbot --nginx
# və ya Apache üçün:
sudo certbot --apache
Proses sertifikatların hansı saytlar üçün buraxılacağını seçməyinizi təklif edəcək. example.com
və test.com
saytlarını seçin. Certbot serverlərin qurulumunu avtomatik olaraq yeniləyəcək.
5. Saytların işləməsini yoxlama
Quraşdırmanı bitirdikdən sonra saytlarınızı ziyarət edin:
Sizin yaratdığınız HTML səhifələri görməlisiniz. Brauzerin ünvan sətrində "Güvənli" (Secure) yazıldığından əmin olun.
6. Debugging və yoxlama
Əgər nəsə yaxşı getməyibsə, log-ları yoxla:
Nginx üçün:
sudo tail -f /var/log/nginx/error.log
Apache üçün:
sudo tail -f /var/log/apache2/error.log
Yaxud curl
vasitəsilə əlçatanlığı yoxla:
curl -I http://example.com
curl -I https://example.com
7. Sertifikatların uzadılması
Certbot sertifikatları sistem cron
vasitəsilə avtomatik şəkildə yeniləyir. Yoxlamaq üçün əl ilə belə işlədə bilərsiniz:
sudo certbot renew --dry-run
Bax belə, addım-addım gedərək bir neçə sayt və HTTPS dəstəyi olan veb-server qurduq. Siz indi tamamilə boş serverdən başlayaraq virtual hostlar və SSL ilə işləyən serverə qədər bütün yolu keçdiniz. İndi sizin serveriniz saytlarınızı bütün dünyaya göstərməyə hazırdır. Bu əla deyilmi?
GO TO FULL VERSION