Cấu hình virtual host chạy nhiều website trên 1 máy chủ vps host

Cấu hình virtual host chạy nhiều website trên 1 vps là chủ đề được giới webmaster, web desinger rất quan tâm. Thông thường khi thuê 1 vps, nhà cung cấp cấp cho chúng ta 1 con máy với tài nguyên khá thoải mái. Và đối với các website mới tạo hoặc website có lượng truy cập trung bình trở xuống thì lượng tài nguyên trên vps này chỉ được sử dụng 1 phần. Nếu người quản trị muốn tạo 1 website khác thì có thể dùng chính vps, máy chủ sẵn có đó để host tiếp cho website mới, để tiết kiệm chi phí; thay vì mua thêm 1 con vps mới rất tốn tiền.

Trong bài này mình sẽ hướng dẫn các bạn cấu hình virtual host chạy nhiều website trên 1 máy chủ nhé. Nào chúng ta bắt đầu thôi.

Cách tạo virtual host này giúp host được nhiều site trên 1 vps không chỉ đối với wordpress mà còn cả đối với website tự code, web thuần chỉ có html, web api…Lý do là vì quy trình cài đặt này thuộc về cơ sở hạ tầng, phân quyền chứ không liên quan đến mã nguồn của website.

Môi trường thực hiện:

  • VPS chạy hệ điều hành ubuntu 16.04 (ubun tu 18.x cũng làm được nhé).
  • Máy đã cài sẵn Mysql+PHP+Apache.
  • Giả định trước khi thực hiện thư mục public gốc của apache là /var/www/html

Bước 1: Tạo cấu trúc thư mục

Giả sử mình có 1 vps và giờ mình muốn dùng chung vps này cho 2 website độc lập là alivecoupon.com và abc.vn

Từ thư mục /var/www mình sẽ tạo hai thư mục con bằng lệnh sau:

sudo mkdir -p /var/www/alivecoupon.com/public_html
sudo mkdir -p /var/www/abc.vn/public_html

 

Bước 1: Copy/upload source code

Các bạn copy/upload source code của hai trang alivecoupon và abc vào hai thư mục vừa tạo tương ứng. Source code phải được bỏ vào trong thư mục public_html tương ứng với mỗi web site.

Trong bài này để mọi người dễ hiểu thì với mỗi site, mình chỉ tạo 1 trang demo html có dòng chữ hello word thôi.

1.1 Tạo trang demo cho alivecoupon.com

Các bạn cd đến thư mục public_html của alivecoupon.com bằng lệnh sau

cd /var/www/alivecoupon.com/public_html

 

Sử dụng công cụ vim hoặc nano để tạo trang demo như sau:

sudo vim index.html

 

Các bạn bấm nút insert trên bàn phím để bắt đầu nhập code

<html>
<head>
<title>Hello alivecoupon.com</title>
</head>
<body>
<p>Hello alivecoupon.com, this is the index page!</p>
</body>
</html>

 

Sau khi hoàn thành, các bạn bấm thứ tự các phím sau để lưu và thoát file: Bấm nút ESC, sau đó gõ :wq! rồi bấm enter

1.2 Tạo trang demo cho abc.vn

Các bạn cd đến thư mục public_html của abc.vn bằng lệnh sau

cd /var/www/abc.vn/public_html

 

Sử dụng công cụ vim hoặc nano để tạo trang demo như sau:

sudo vim index.html

 

Các bạn bấm nút insert trên bàn phím để bắt đầu nhập code

<html>
<head>
<title>Hello abc.vn</title>
</head>
<body>
<p>Hello abc.vn, this is the index page!</p>
</body>
</html>

 

Sau khi hoàn thành, các bạn bấm thứ tự các phím sau để lưu và thoát file: Bấm nút ESC, sau đó gõ :wq! rồi bấm enter

Bước 2: Tạo tập tin Virtual Host

2.1. Tạo virtual host cho alivecoupon.com

Các bạn cd đến thư mục chứa tập tin cấu hình virtual host của apache như sau:

cd /etc/apache2/sites-available/

 

Ở đấy sẽ có tập tin 000-default.conf, là tập tin cấu hình virtual host mặc định của apache. Các bạn copy nó thành 1 file mới để cấu hình cho alivecoupon.vn bằng lệnh sau:

sudo cp 000-default.conf alivecoupon.com.conf

 

Sau đó lại dùng vim hoặc nano để sửa file alivecoupon.com.conf vừa mới được copy:

sudo vim alivecoupon.com.conf

 

Các bạn sửa thành như sau:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName alivecoupon.com
ServerAlias www.alivecoupon.com
DocumentRoot /var/www/alivecoupon.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

Trong đó:

  • Serveradmin: Email quản trị website alivecoupon.
  • ServerName và Serveralias điền domain web alivecoupon vào.
  • Document root là nơi sẽ ánh xạ khi truy cập từ tên miền đến. Trường hợp của  mình sẽ là /var/www/alivecoupon.com/public_html

Sau khi hoàn thành, các bạn bấm thứ tự các phím sau để lưu và thoát file: Bấm nút ESC, sau đó gõ :wq! rồi bấm enter.

2.2. Tạo virtual host cho abc.vn

Các bạn lại copy file 000-default.conf thành abc.vn.conf như bước 2.1 rồi soạn nội dung cho abc.vn.conf như sau:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName abc.vn
ServerAlias www.abc.vn
DocumentRoot /var/www/abc.vn/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

Bước 3: Thực thi các tập tin cấu hình virtual host

Ở bước 2 chúng ta mới chỉ tạo ra các tập tin cấu hình .conf. Ở bước này chúng ta sẽ cho chạy nó và test kết quả.
Các bạn gõ lệnh sau để khởi động virtual host cho alivecoupon.com

sudo a2ensite alivecoupon.com.conf

 

Các bạn gõ lệnh sau để khởi động virtual host cho abc.vn

sudo a2ensite abc.vn.conf

 

Đừng quên tắt file virtual host mặc định của apache bằng lệnh sau nhé

sudo a2dissite 000-default.conf

 

Cuối cùng khởi động lại apache:

sudo systemctl restart apache2

 

Nào hãy vào trình duyệt gõ alivecoupon.com và abc.vn để tận hưởng kết quả nhé.

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>