CodeGym /Các khóa học /Docker SELF /Triển khai web server với virtual host và SSL

Triển khai web server với virtual host và SSL

Docker SELF
Mức độ , Bài học
Có sẵn

Triển khai web server với virtual host và SSL

1. Chuẩn bị môi trường

Bây giờ đã đến lúc gom mọi thứ lại với nhau. Hôm nay chúng ta sẽ triển khai server với nhiều virtual hosts và kết nối chúng với HTTPS. Chúng ta sẽ thử nghiệm, gỡ lỗi và cấu hình hoàn chỉnh.

Nhiệm vụ của chúng ta

Trong dự án này, chúng ta sẽ triển khai hai trang web trên một web server:

  • example.com
  • test.com

Đối với mỗi trang web, chúng ta sẽ cấu hình virtual host, kết nối HTTPS, và thực hiện các bước gỡ lỗi và kiểm tra hoạt động. Sẵn sàng chưa? Bắt đầu thôi nào!

Chuẩn bị

Trước khi bắt đầu, hãy chắc chắn rằng mọi thứ đã được cấu hình đúng:

  1. Bạn đã có một web server được cài đặt (Nginx hoặc Apache).

    • Nếu bạn sử dụng Nginx:

      sudo apt-get update
      sudo apt-get install nginx
      
    • Hoặc Apache:

      sudo apt-get update
      sudo apt-get install apache2
      
  2. Gói Certbot để làm việc với SSL đã được cài đặt.

    • Đối với Nginx:

      sudo apt-get install certbot python3-certbot-nginx
      
    • Đối với Apache:

      sudo apt-get install certbot python3-certbot-apache
      
  3. Bạn có quyền truy cập vào server nơi đã cấu hình DNS cho các tên miền example.com và test.com, hoặc có thể sử dụng /etc/hosts cho các thử nghiệm.


2. Cấu hình thư mục cho từng trang web

Bắt đầu với việc tạo thư mục và tệp cho các trang web của chúng ta.

Bước 1: Tạo thư mục cho các trang web

sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com

Bước 2: Tạo tệp HTML test

Tạo một tệp HTML đơn giản cho mỗi trang web:

example.com

sudo nano /var/www/example.com/index.html

Nội dung:

<!DOCTYPE html>
<html>
<head>
    <title>Chào mừng đến example.com</title>
</head>
<body>
    <h1>Đây là example.com</h1>
    <p>Chào mừng đến example.com! Trang web đã hoạt động và an toàn với SSL!</p>
</body>
</html>

test.com

sudo nano /var/www/test.com/index.html

Nội dung:

<!DOCTYPE html>
<html>
<head>
    <title>Chào mừng đến test.com</title>
</head>
<body>
    <h1>Đây là test.com</h1>
    <p>Chào mừng đến test.com! Trang web đã chạy và an toàn với SSL!</p>
</body>
</html>

3. Cấu hình virtual host

Chúng ta sẽ tạo file cấu hình riêng biệt cho từng website.

Bước 1: Cấu hình cho Nginx

example.com

sudo nano /etc/nginx/sites-available/example.com

Nội dung:

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

Nội dung:

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Kích hoạt cấu hình:

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/

Khởi động lại server:

sudo nginx -t
sudo systemctl reload nginx

Bước 2: Cấu hình cho Apache

example.com

sudo nano /etc/apache2/sites-available/example.com.conf

Nội dung:

<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

Nội dung:

<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>

Kích hoạt cấu hình:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2

4. Cấu hình HTTPS cho các trang web

Giờ chúng ta sẽ kết nối SSL cho cả hai trang web bằng Let’s Encrypt.

sudo certbot --nginx
# hoặc cho Apache:
sudo certbot --apache

Quá trình sẽ yêu cầu bạn chọn các trang web để cấp phát chứng chỉ. Chọn example.comtest.com. Certbot sẽ tự động cập nhật cấu hình của server.


5. Kiểm tra hoạt động của các trang web

Sau khi hoàn thành cấu hình, hãy truy cập vào các trang web của bạn:

Bạn sẽ nhìn thấy các trang HTML đã được tạo ra. Đảm bảo rằng trình duyệt hiển thị "An toàn" (Secure) trong thanh địa chỉ.


6. Debug và kiểm tra

Nếu có gì đó không đúng, kiểm tra logs:

  • Đối với Nginx:

    sudo tail -f /var/log/nginx/error.log
    
  • Đối với Apache:

    sudo tail -f /var/log/apache2/error.log
    

Hoặc kiểm tra độ truy cập qua curl:

curl -I http://example.com
curl -I https://example.com

7. Gia hạn chứng chỉ

Certbot tự động cập nhật chứng chỉ bằng cách sử dụng cron của hệ thống. Để kiểm tra, bạn có thể chạy thủ công:

sudo certbot renew --dry-run

Như vậy đấy, bước từng bước, chúng ta đã cấu hình web server hỗ trợ nhiều trang web và HTTPS. Cậu vừa hoàn thành cả một hành trình từ một server trống không cho đến một server hoạt động với virtual hosts và SSL. Giờ đây server của cậu đã sẵn sàng để trình diễn các trang web của mình ra thế giới. Ngầu đúng không?

1
Опрос
Làm việc với web server trong Linux,  7 уровень,  5 лекция
недоступен
Làm việc với web server trong Linux
Làm việc với web server trong Linux
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION