+1

Cài đặt Nginx và cấu hình Virtual Hostings trên môi trường Ubuntu

Mayfest2023

1. Mở đầu

Trong việc triển khai các ứng dụng web trên môi trường Ubuntu, việc cài đặt Nginx và cấu hình Virtual Hostings là một bước quan trọng để quản lý và phân phối các trang web. Nginx là một máy chủ web phổ biến và mạnh mẽ, đồng thời hỗ trợ cấu hình Virtual Hostings cho phép chạy nhiều trang web trên cùng một máy chủ. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt Nginx và cấu hình Virtual Hostings trên môi trường Ubuntu.

2. Cài đặt Nginx

Để bắt đầu, chúng ta cần cài đặt Nginx trên máy chủ Ubuntu của chúng ta. Hãy thực hiện các bước sau:

  1. Mở Terminal và chạy các câu lệnh sau để cập nhật danh sách gói và cài đặt Nginx:
sudo apt update
sudo apt install nginx
  • sudo apt update: Câu lệnh này được sử dụng để cập nhật danh sách gói trên máy chủ Ubuntu.
  • sudo apt install nginx: Câu lệnh này được sử dụng để cài đặt Nginx trên máy chủ Ubuntu.
  1. Sau khi cài đặt hoàn tất, Nginx sẽ được khởi động tự động. Bạn có thể kiểm tra trạng thái của dịch vụ bằng cách chạy lệnh:
sudo systemctl status nginx
  • sudo systemctl status nginx: Câu lệnh này được sử dụng để kiểm tra trạng thái của dịch vụ Nginx.
  1. Mở trình duyệt và nhập địa chỉ IP của máy chủ Ubuntu vào thanh địa chỉ. Nếu bạn nhìn thấy trang mặc định "Welcome to Nginx", điều đó chứng tỏ Nginx đã được cài đặt thành công.

3. Cấu hình Virtual Hostings

Sau khi cài đặt Nginx, chúng ta sẽ cấu hình Virtual Hostings để có thể chạy nhiều trang web trên cùng một máy chủ. Hãy làm theo các bước dưới đây:

  1. Tạo các thư mục cho các trang web riêng biệt:
sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html
  • sudo mkdir -p /var/www/example1.com/html: Câu lệnh này tạo một thư mục/var/www/example1.com/html để lưu trữ tệp của trang web example1.com.
  1. Thiết lập quyền truy cập cho các thư mục:
sudo chown -R $USER:$USER /var/www/example1.com/html
sudo chown -R $USER:$USER /var/www/example2.com/html
  • sudo chown -R $USER:$USER /var/www/example1.com/html: Câu lệnh này thiết lập quyền truy cập cho thư mục /var/www/example1.com/html, cho phép người dùng hiện tại có quyền ghi vào thư mục.
  1. Tạo các tệp index.html cho các trang web:
echo "Hello from Example 1" | sudo tee /var/www/example1.com/html/index.html
echo "Hello from Example 2" | sudo tee /var/www/example2.com/html/index.html
  • echo "Hello from Example 1" | sudo tee /var/www/example1.com/html/index.html: Câu lệnh này tạo một tệp index.html trong thư mục /var/www/example1.com/html với nội dung là "Hello from Example 1".
  1. Tạo các tệp cấu hình Virtual Hostings:
sudo nano /etc/nginx/sites-available/example1.com
  • sudo nano /etc/nginx/sites-available/example1.com: Câu lệnh này mở trình soạn thảo nano để tạo hoặc chỉnh sửa tệp cấu hình example1.com của Virtual Hostings.
  1. Trong tệp cấu hình example1.com, thêm nội dung sau:
server {
    listen 80;
    server_name example1.com www.example1.com;

    location / {
        root /var/www/example1.com/html;
        index index.html;
    }
}
  1. Trong tệp cấu hình example1.com, chúng ta định nghĩa một server block với server_name là tên miền của trang web (example1.comwww.example1.com). Location block xác định đường dẫn root và tệp mặc định của trang web.

  2. Tương tự, tạo tệp cấu hình example2.com:

sudo nano /etc/nginx/sites-available/example2.com
  • Trong tệp cấu hình example2.com, thêm nội dung sau:
server {
    listen 80;
    server_name example2.com www.example2.com;

    location / {
        root /var/www/example2.com/html;
        index index.html;
    }
}
  1. Tạo liên kết từ tệp cấu hình trong sites-available đến sites-enabled để kích hoạt Virtual Hostings:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
  • sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/: Câu lệnh này tạo một liên kết tượng trưng từ tệp cấu hình trong thư mục sites-available đến thư mục sites-enabled, kích hoạt Virtual Hostings.
  1. Kiểm tra cú pháp của các tệp cấu hình:
sudo nginx -t
  • sudo nginx -t: Câu lệnh này kiểm tra cú pháp của các tệp cấu hình Nginx.
  1. Khởi động lại Nginx để áp dụng các thay đổi:
sudo systemctl restart nginx
  • sudo systemctl restart nginx: Câu lệnh này khởi động lại dịch vụ Nginx để áp dụng các thay đổi.

Bây giờ chúng ta truy cập example1.com trên trình duyệt -> Virtual Hostings vẫn chưa hoạt động (sad).

Cấu hình file /etc/hosts

  • Là một bước quan trọng trong quá trình cấu hình Virtual Hostings trên Nginx. Điều này giúp máy chủ biết được tên miền và địa chỉ IP tương ứng của các trang web mà bạn đang cấu hình.
  • Dưới đây là một ví dụ về cấu hình file /etc/hosts:
sudo nano /etc/hosts
  • Trong file /etc/hosts, bạn có thể thêm các dòng sau vào cuối tệp:
127.0.0.1  example1.com
127.0.0.1  www.example1.com
127.0.0.1  example2.com
127.0.0.1  www.example2.com
  • Điều này cho phép máy chủ localhost định tuyến các yêu cầu đến tên miền example1.comwww.example1.com về địa chỉ IP 127.0.0.1 (localhost).
  • Sau khi thêm các dòng trên, lưu và đóng file /etc/hosts.

Lưu ý rằng bạn cần chỉnh sửa file /etc/hosts với quyền root (sudo) để lưu các thay đổi.

  • Qua đó, máy chủ sẽ nhận diện tên miền và chuyển hướng yêu cầu đến đúng Virtual Hostings mà bạn đã cấu hình trong Nginx.
  • Điều này đảm bảo rằng khi truy cập example1.com hoặc www.example1.com trên trình duyệt, yêu cầu sẽ được chuyển đến máy chủ và Nginx sẽ xử lý nó dựa trên cấu hình Virtual Hostings của bạn.

4. Kết bài

Sau khi hoàn thành các bước trên, bạn đã cài đặt thành công Nginx và cấu hình Virtual Hostings trên môi trường Ubuntu. Bây giờ, bạn có thể truy cập các trang web đã được cấu hình bằng cách nhập các địa chỉ trang web tương ứng vào trình duyệt của bạn. Việc sử dụng Virtual Hostings cho phép bạn chạy nhiều trang web trên cùng một máy chủ một cách dễ dàng và hiệu quả.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí