Hướng dẫn cấu hình Virtual Hosts trên Nginx


Để có thể chạy nhiều domain / website trên Nginx Web Server chúng ta cần cấu hình Virtual Hosts. Hướng dẫn sau sẽ giúp bạn cấu hình Nginx Virtual Hosts trên máy chủ Ubuntu / CentOS

Tiền đề bài viết

Máy chủ server / vps chạy hệ điều hành Ubuntu Server 18.04 (Ubuntu / Debian / Linux Mint) hoặc CentOS 7/8 (RHEL / Fedora). Các bạn có thể thực hiện trên Local với VirtualBox hoặc VMWare hoặc mua và sử dụng 1 VPS, Cloud VPS. Các bạn có thể tham khảo dịch vụ Cloud VPS nổi tiếng của nhà cung cấp Vultr.

Chúng ta cấu hình Virtual Hosts trên Nginx với 2 website có thông tin như sau:

Website 1 Website 2
Tên miền vinasupport-1.com vinasupport-2.com
Đường dẫn thư mục /var/www/vinasupport_1 /var/www/vinasupport_2

Cài đặt Nginx Server

Việc cài đặt Nginx cực kỳ đơn giản và mình cũng đã trình bày chi tiết trong bài viết: Nginx là gì? Cài đặt và cấu hình Nginx Web Server

Cấu hình Virtual Hosts trên Nginx Server

Tạo thư mục lưu trữ source code cho 2 website:

mkdir -p /var/www/vinasupport_{1,2}

Tạo file index.html cho website vinasupport-1.com, đặt nó ở đường dẫn /var/www/vinasupport_1/index.html

Với nội dung như sau:

<html>
 <head>
 <title>vinasupport.com</title>
 </head>
 <body>
   <p>Website: vinasupport-1.com</p>
 </body>
</html>

Tương tư tạo file index.html cho website vinasupport-2.com ở đường dẫn /var/www/vinasupport_2/index.html

Với nội dung như sau:

<html>
 <head>
 <title>vinasupport.com</title>
 </head>
 <body>
   <p>Website: vinasupport-2.com</p>
 </body>
</html>

Tạo 2 file Virtual Hosts cho 2 domain:

– File: /etc/nginx/sites-available/vinasupport-1.conf có nội dung như sau:

server {
       listen 80;
       listen [::]:80;
       server_name vinasupport-1.com;
       root /var/www/vinasupport_1;
       index index.html;
       location / {
               try_files $uri $uri/ =404;
       }
}

– File: /etc/nginx/sites-available/vinasupport-2.conf có nội dung như sau:

server {
       listen 80;
       listen [::]:80;
       server_name vinasupport-2.com;
       root /var/www/vinasupport_2;
       index index.html;
       location / {
               try_files $uri $uri/ =404;
       }
}

Ý nghĩa của các tham số:

  • listen 80: Lắng nghe và nhận các kết nối trên cổng 80 (HTTP Port)
  • listen [::]:80: Tương tự nhưng cho địa chỉ IPv6
  • server_name: Địa chỉ tên miền
  • root: Đường đẫn thư mục chứa source code website
  • index: File sẽ gọi đến đầu tiên
  • location: Cách trả về tài nguyên trên máy chủ, khi có request tới 1 URL

Sau đó tạo 2 file symbolic link tới thư mục /etc/nginx/sites-enabled/

sudo ln -s /etc/nginx/sites-available/vinasupport-1.conf /etc/nginx/sites-enabled/vinasupport-1.conf
sudo ln -s /etc/nginx/sites-available/vinasupport-2.conf /etc/nginx/sites-enabled/vinasupport-2.conf

Cuối cùng reload lại service của Nginx Web Server để nhận 2 file configs này!

sudo systemctl reload nginx

Kết quả:

Nguồn: vinasupport.com

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

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 *

account_circle
web