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:
- 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.
- 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.
- 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:
- 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 webexample1.com
.
- 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.
- 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"
.
- 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ìnhexample1.com
của Virtual Hostings.
- 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; }
}
-
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.com
vàwww.example1.com
). Location block xác định đường dẫn root và tệp mặc định của trang web. -
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; }
}
- Tạo liên kết từ tệp cấu hình trong
sites-available
đếnsites-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.
- 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.
- 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.com
vàwww.example1.com
về địa chỉ IP127.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ặcwww.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ả.