Chào các bạn! Hôm nay, chúng ta sẽ cùng nhau khám phá một chủ đề rất thú vị và rất “cool” trong thế giới công nghệ: Cấu hình tên miền trỏ về container bằng Nginx. Nghe có vẻ phức tạp nhưng đừng lo, tôi sẽ giải thích từng bước để bạn dễ hiểu nhé!
Tên Miền (Domain) Là Gì?
Trước khi bắt đầu, chúng ta cần hiểu rõ một chút về tên miền. Tên miền giống như “địa chỉ nhà” trên Internet của bạn. Ví dụ, khi bạn muốn vào một trang web như www.google.com, thì google.com chính là tên miền. Mọi người chỉ cần gõ tên miền vào trình duyệt và sẽ được dẫn đến website đó.
Nhưng làm sao để tên miền này chỉ đến đúng ứng dụng của bạn trên Internet? Đó chính là công việc của Nginx và việc “trỏ” tên miền về đúng nơi.
Nginx Là Gì?
Nginx (đọc là “Engine-X”) là một phần mềm giúp “quản lý” các kết nối và gửi người dùng đến đúng địa chỉ mà họ cần. Ví dụ, bạn có thể tưởng tượng Nginx như một người giao thông điều khiển các xe (người dùng) đi đúng hướng. Nếu bạn truy cập vào website của ai đó, Nginx sẽ giúp bạn vào đúng “phòng” (hoặc container) chứa ứng dụng của họ.
Mục Tiêu Của Chúng Ta
Chúng ta muốn làm một việc đơn giản nhưng rất hữu ích: cấu hình tên miền của bạn để trỏ về một container đang chạy ứng dụng của bạn (ví dụ, một website hoặc một API) bằng Nginx. Để làm điều này, chúng ta sẽ:
- Sử dụng Nginx để chuyển hướng các yêu cầu từ tên miền về container.
- Đảm bảo rằng khi người dùng gõ tên miền vào trình duyệt, họ sẽ đến đúng nơi trong container của bạn.
Khuyến khích sử dụng VPS để thực hành giúp bạn có góc nhìn thực tế hơn!
Bước 1: Cài Đặt Docker Và Nginx
Trước khi cấu hình, bạn cần có hai thứ:
- Docker: Để chạy container.
- Nginx: Để quản lý tên miền và gửi yêu cầu đến container.
Nếu chưa cài Docker và Nginx, bạn cần làm điều đó trước. Sau khi cài đặt xong, chúng ta sẽ tạo ra một container và cấu hình Nginx để tên miền trỏ về container đó.
Bước 2: Tạo Một Container Chạy Ứng Dụng
Ở bước này, bạn vui lòng xem lại bài Phần 4. Tập Tành Build Container Trong Docker nhé.
Bước 3: Cấu Hình Nginx
Bây giờ, bạn cần cấu hình Nginx để chuyển hướng mọi yêu cầu từ tên miền của bạn vào container. Giả sử tên miền của bạn là mywebsite.com.
Tạo một tệp cấu hình Nginx:
Bạn cần tạo một tệp cấu hình Nginx để chỉ định rằng khi người dùng truy cập vào mywebsite.com, Nginx sẽ gửi yêu cầu đến container của bạn. Mở hoặc tạo tệp cấu hình Nginx (thường ở đường dẫn /etc/nginx/sites-available/
), và thêm nội dung sau:
server {
listen 80;
server_name mywebsite.com;
location / {
proxy_pass http://localhost:4000; # Địa chỉ của container nginx
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Giải thích:
listen 80
: Nginx sẽ lắng nghe trên cổng 80, nơi mà các yêu cầu từ trình duyệt đến.server_name mywebsite.com
: Chỉ định tên miền bạn muốn trỏ về container.proxy_pass http://localhost:4000
: Khi người dùng truy cập vào mywebsite.com, Nginx sẽ chuyển yêu cầu này đến địa chỉlocalhost:4000
, nơi container của bạn đang chạy. Giá trị4000
chính là PORT của container trước đó bạn đã export
Kích hoạt tệp cấu hình:
Sau khi tạo tệp cấu hình, bạn cần tạo một liên kết đến thư mục /etc/nginx/sites-enabled/
để Nginx biết tệp này.
sudo ln -s /etc/nginx/sites-available/mywebsite.com /etc/nginx/sites-enabled/
Bước 4: Cập Nhật DNS Tên Miền
Để tên miền mywebsite.com trỏ về VPS của bạn, bạn cần cập nhật bản ghi A trong DNS của tên miền. Truy cập vào nơi bạn đã mua tên miền (chẳng hạn như GoDaddy, Namecheap, v.v.), và cập nhật bản ghi A để trỏ tới địa chỉ IP của VPS nơi Nginx đang chạy.
Ví dụ:
- Tên miền: mywebsite.com
- Bản ghi A: Trỏ đến địa chỉ IP của VPS của bạn.
Hình ảnh minh hoạ
Nếu Host bạn điền giá trị là @ thì tên miền trỏ về IP VPS chính là mywebsite.com, còn nếu Host bạn để là api thì tên miền trỏ về IP VPS chính là api.mywebsite.com
Bước 5: Khởi Động Lại Nginx
Sau khi cấu hình xong, bạn cần khởi động lại Nginx để áp dụng thay đổi:
sudo nginx -t && sudo systemctl restart nginx
Lưu ý: Thời gian để DNS cập nhật có thể mất vài phút. Nên trước khi cấu hình vào nginx thì bạn hãy kiểm tra tên miền có thực sự trỏ về IP VPS bằng cách sử dụng lệnh ping mywebsite.com
Kiểm Tra
Bây giờ, khi bạn gõ http://mywebsite.com vào trình duyệt, yêu cầu sẽ được Nginx tiếp nhận và chuyển hướng vào container. Bạn sẽ thấy ứng dụng chạy trong container xuất hiện trên trình duyệt.
Kết Luận
Vậy là bạn đã hoàn thành việc cấu hình tên miền trỏ về container bằng Nginx! Bạn chỉ cần làm một số bước đơn giản để người dùng có thể truy cập ứng dụng của bạn thông qua một tên miền dễ nhớ thay vì phải nhớ đến địa chỉ IP của máy chủ.
Việc này giúp bạn quản lý ứng dụng dễ dàng hơn, và Nginx sẽ làm nhiệm vụ chuyển hướng các yêu cầu vào đúng container chứa ứng dụng của bạn, giống như một người giao thông thông minh giúp điều hướng các xe về đúng nơi!
Chúc các bạn thành công và tiếp tục khám phá thêm nhiều điều thú vị trong thế giới công nghệ nhé!