[LEMP – II] Cấu hình Virtual Host trên Nginx với VPS CentOS 7

Ở phần I các bạn đã biết cách cấu hình Nginx Server đơn giản cũng như cấu trúc file nginx.conf. Cuối file nginx.conf có chỉ thị include /etc/nginx/conf.d/*.conf gọi đến các file có đuôi mở rộng là .conf dùng để tạo Virtual host , trong phần II này chúng ta chỉ xoay quanh các Block (khối) và Directive (chỉ thị) trong những file cấu hình đó thôi.

Đây là bài mà rất nhiều bạn quan tâm khi cấu hình web server nginx trong một hệ thống LEMP Stack nói chung, giúp các bạn tạo (host) các trang web mới nhanh chóng.

Xem lại Phần I: Tìm hiểu và cách cài đặt nginx cơ bản.

Bài viết này có thể áp dụng cho các phiên bản nginx cũ hơn nginx 1.0/1.5/1.8 bởi các directive và block là giống nhau.

1. Cấu trúc Virtual Host trong nginx 1.9.12

Theo mặc định /etc/nginx/conf.d là folder chưa file cấu hình khi muốn thêm virtual host(host ảo) vào nginx, nó có một file default.conf duy nhất. Trong default.conf có block server đây là block lớn bao trùm lên tất cả, bên trong block server là các directive và các block location con khác.

Để tạo một trang web mới bạn chỉ cần copy default.conf ra file mới thay đổi các giá trị bằng cách bỏ dấu comment # cho phù hợp là xong. Còn file default.conf muốn làm gì thì làm hoặc đổi tên thành default.conf.bak để lưu lại, sau này nếu muốn host thêm trang web khác thì dùng.

2. Tạo cây thư mục cho website mới

mkdir -p /var/www/demo1.thuysys.com/{public_html,logs,backup}

Câu lệnh trên tạo ra 3 thư mục cùng lúc publich_html, logs, backup trong đường dẫn /var/www/demo1.thuysys.com/. Lệnh trong linux rất linh hoạt, mỗi bài viết mình sẽ chèn các cú pháp mới vào, mới đầu sẽ hơi bỡ ngỡ dùng quen sẽ tiết kiệm thời gian gõ phím rất nhiều. Sau đó bạn có thể vưt file default.conf.bak bên trên vào thư mục backup cho gọn.

Phân quyền quản lý thư mục

chown -R nginx:nginx /var/www

Câu lệnh sẽ giao quyền quản lý thư mục /var/www cho user nginx thuộc group nginx, làm tương tự như khi tạo Virtual host trên LAMP Server.

3. Cách tạo Virtual host trên nginx

Dùng Text editor VI tạo file config virtual host vi /etc/nginx/conf.d/demo1.thuysys.com.conf có nội dung như sau:

server {
listen  80;
server_name demo1.thuysys.com www.demo1.thuysys.com;
access_log /var/www/demo1.thuysys.com/logs/access.log;
error_log /var/www/demo1.thuysys.com/logs/error.log;
root /var/www/demo1.thuysys.com/public_html; 
index index.html index.htm index.php;
}

Trên đây là thông số cấu hình tối thiểu nhất để tạo virtual host trên nginx. Toàn bộ virtualhost được bao trong block server.

  • Listen: xác định IP và port lắng nghe request đến website, port 80 là giá trị mặc định.
  • server_name: gán hostname cho website, ở đây mình đặt hostname là demo1.thuysys.com
  • access_log: nếu đã đọc phần I cơ bản về nginx bạn sẽ thấy chỉ thị access_log đã được khai báo trước đó trong block http (block cha của block server). Việc khai báo trong block server sẽ vô hiệu hóa chỉ thị access_log trong http và quy định lại đường dẫn đến file ghi log truy cập mới. Theo mình mỗi virtual host bạn cấu hình log riêng để dễ quản lý, giờ bạn có thể xóa chỉ thị access_log ngoài block http đi cho đỡ rối.
  • error_log: quy định đường dẫn đến file ghi log lỗi, cũng tương tự access_log bạn xem lại file /etc/nginx/nginx.conf để cài đặt log cho phù hợp.
  • root: chỉ định đường dẫn đến source code của trang web.
  • index: các file nginx sẽ xử lý.

Tiếp theo bạn lưu lại file cấu hình, truy cập lại URL http://demo1.thuysys.com nếu thấy kết quả như bên dưới là thành công rồi.

Kiểm tra Virtual hosts cua nginx

4. Kết bài

Trên đây là những kiến thức tạo virtual host hết sức cơ bản trên LEMP Server, bạn chú ý cách lồng ghép các block và directive để linh hoạt khi thêm host ảo trong nginx, hẹn gặp lại các bạn ở phần III. Thank you !

 

4 Comments

  1. Huy Tran May 30, 2017 Reply
    • Mr Thủy May 30, 2017 Reply
  2. Pham Dat March 8, 2017 Reply

Leave a Reply