Thứ Bảy, 29 tháng 7, 2023

Cách thiết lập nhiều domain máy chủ Nginx trên Ubuntu 20.04

Trong bài này mình sẽ hướng dẫn các bạn cách thiết lập nhiều domain trên máy chủ Nginx được cài đặt trên Ubuntu 20.04.

Chúng ta sẽ xem mỗi domain là một block server, như vậy nếu chạy 10 domain thì chúng ta chỉ cần tạo ra 10 blocks để chứa mã nguồn cho 10 trang web đó là được. Qua đó bạn cũng có thể tạo bảo mật riêng cho từng trang web, cũng như tạo SSL cho nó.

Khi một domain trỏ tới máy chủ này thì nhiệm vụ của Nginx là phân phối luồng dựa vào tên domain, nó sẽ chạy tới đúng mã nguồn riêng dành cho domain đó.

Trước khi bắt đầu thì bạn phải chuẩn bị một số thứ như sau:

Bài viết này được đăng tại tranvanbinh.vn

  • Đã mua một VPS để sử dụng, nếu chưa có thì tìm mua trong bài viết VPS tốt nhất.
  • Mua domain và trỏ domain về địa chỉ IP của server. Nếu bạn chưa biết cách làm thì xem tại bài viết hướng dẫn trỏ tên miền về hosting.
  • Đã tiến hành cài đặt Nginx trên Ubuntu
  • Bạn đang đăng nhập bằng user sudo trên Ubuntu.

Mục lục

  • 1. Cấu trúc thư mục trên server của các domain
  • 2. Tạo Server Blocks trên Ubuntu

1. Cấu trúc thư mục trên server của các domain

Thư mục gốc chính là thư mục chứa toàn bộ dữ liệu của website, mà chúng ta có nhiều mã nguồn website đặt trên máy chủ nên nhiệm vụ của server là dựa vào domain trỏ về để chọn đúng thư mục root của website đó.

Bạn có thể thiết lập thư mục gốc ở bất kì đâu, dưới đây là một ví dụ:

1
2
3
4
5
/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html

Vậy mỗi domain trên server sẽ được đặt trong thư mục gốc là: /var/www/<domain_name>/public_html.

Giả sử ta cần thiết lập cấu hình cho trang web example.com.

Bây giờ chúng ta hãy tạo thư mục gốc cho example.com bằng cách sử dụng lệnh mkdir nhé.

1
sudo mkdir -p /var/www/example.com/public_html

Tiếp theo hãy tạo một file index.html nằm trong thư mục public_html mà chúng ta đã tạo, sau đó nhập nội dung cho file index.html như sau:

/var/www/example.com/public_html/index.html
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

Vì các lệnh trên mình sử dụng với tư cách là người dùng sudo, nên mọi file tạo ra đều thuộc quyền sở hữu của tài khoản root. Để tránh mọi vấn đề rắc rối về quyền sau này thì hãy thay đổi quyền sở hữu thành người dùng Nginx (www-data).

1
sudo chown -R www-data: /var/www/example.com

Bây giờ ta hãy qua bước 2 để tạo block cho domain example.com nhé.

2. Tạo Server Blocks trên Ubuntu

Trên Ubuntu, file cấu hình Nginx Server Block nằm trong thư mục /etc/nginx/sites-available. Chúng có thể được kích hoạt bằng cách tạo các symbolic links trỏ đến thư mục /etc/nginx/sites-enabled, Nginx sẽ đọc trong quá trình khởi động và biết domain nào đang tồn tại và đang kích hoạt.

Giả sử mình cần tạo block cho domain example.com thì các bước thực hiện như sau:

Bước 1: Hãy sử dụng VI Editor tạo một file như sau:

/etc/nginx/sites-available/example.com
1
2
3
4
5
6
7
8
9
10
11
12
server {
    listen 80;
 
    server_name example.com www.example.com;
 
    root /var/www/example.com/public_html;
 
    index index.html;
 
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
}

Trong đó:

  • server_name là tên của domain phải khớp với domain mà bạn muốn tạo.
  • root là đường dẫn trỏ tới thư mục chứa dữ liệu website.
  • access_logerror_log là hai file đặc biệt dùng để lưu log.

Bạn có thể đặt một cái tên bất kì cho file cấu hình này. Tuy nhiên, người ta vẫn khuyến khích đặt theo đúng tên của domain, vì như vậy việc quản lý sẽ dễ dàng hơn.

Để kích hoạt server block file này thì ta hãy tạo một symbolic link từ file đến thư mục sites-enabled mà nginx sẽ đọc trong khi khởi động.

1
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Bây giờ hãy chạy lệnh dưới đây để kiểm tra xem ta đã cấu hình đúng hay không.

1
sudo nginx -t

Nếu mọi việc thành công thì bạn sẽ nhận được kết quả như sau:

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Hãy restart lại Nginx bằng lệnh dưới đây để áp dụng các thay đổi.

1
sudo systemctl restart nginx

Cuối cùng, hãy truy cập vào domain mà bạn đã trỏ tới Server thì sẽ thấy kết quả như sau:

ket qua JPG

Như vậy là bạn đã tạo thành công rồi đấy.

Bạn có thể tạo thêm nhiều domain bằng cách thực hiện theo các thao tác như trên nhé.

Vậy là mình đã hướng dẫn xong cách tạo và quản lý các domain trên Ubuntu, qua bài này sẽ giúp bạn chạy được nhiều website trên một Server, phân chia dữ liệu một cách rõ ràng. Chúc bạn thành công.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master