NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
08/05/2023
Lượt xem

Cách cài đặt Nginx trên Ubuntu 20.04

08/05/2023
14 phút đọc
Lượt xem

Đánh giá

5/5 - (72 bình chọn)

Nginx là một trong những web server nhẹ và phổ biến nhất hiện nay, hỗ trợ cho nhiều website có lưu lượng rất lớn trên Internet. Bài viết này sẽ hướng dẫn bạn chi tiết các bước cài đặt Nginx trên Ubuntu 20.04.

Điều kiện để cài đặt Nginx trên Ubuntu 20.04

Trước khi bắt đầu bạn cần có server Ubuntu 20.04, user non-root có quyền sudo trên server. Ngoài ra bạn cũng có thể sử dụng một tên miền đã đăng ký để thiết lập server block.

Cách cài đặt Nginx trên Ubuntu 20.04

Bước 1: Cài đặt Nginx

Nginx có sẵn trong repo mặc định của Ubuntu nên bạn chỉ cần cài đặt bằng apt.

Trước tiên, cập nhật chỉ mục local package rồi cài đặt nginx:

sudo apt update
sudo apt install nginx

Bước 2: Tùy chỉnh firewall

Trước khi thử nghiệm với Nginx, phần mềm tường lửa (firewall) cần được chỉnh sửa để cho phép truy cập vào dịch vụ. Nginx được đăng ký dưới dạng ufw khi cài đặt nên quá trình này đơn giản hơn rất nhiều.

Liệt kê cấu hình ứng dụng của ufw:

sudo ufw app list

Output sẽ là các ứng dụng hiện có:

# Output
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Bạn có thể thấy ba profile khác nhau của Nginx như sau:

  • Nginx Full: Mở cho port 80 (port thông thường, lưu lượng web không được mã hóa) và port 443 (lưu lượng được mã hóa theo TLS/SSL).
  • Nginx HTTP: Chỉ mở port 80.
  • Nginx HTTPS: Chỉ mở port 443.

Trong hướng dẫn này, bạn chỉ cần cho phép các lưu lượng trên port 80. Để enable profile này, hãy nhập lệnh sau:

sudo ufw allow 'Nginx HTTP'

Kiểm tra xem thay đổi đã được áp dụng chưa bằng cách dùng lệnh status để xem lưu lượng HTTP đang được cho phép:

sudo ufw status
# Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Bước 3: Kiểm tra Web Server

Sau khi hoàn tất quá trình cài đặt, Ubuntu 20.04 sẽ tự khởi động Nginx. Bạn có thể kiểm tra xem dịch vụ có đang chạy không bằng lệnh:

systemctl status nginx
# Output
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: <strong>active (running)</strong> since Fri 2020-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   Memory: 3.5M
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

Bây giờ hãy thử truy cập vào địa chỉ IP của server, nếu dịch vụ đang chạy thì bạn sẽ được chuyển đến landing page mặc định của Nginx như hình dưới.

http://your_server_ip
Welcome to nginx
Welcome to nginx

Bước 4: Quản lý các tiến trình Nginx

Sau khi install Nginx trên Ubuntu thành công, trong phần này bạn sẽ cùng tìm hiểu một số lệnh quản lý cơ bản trong Nginx:

Dừng web server:

sudo systemctl stop nginx

Khởi động web server:

sudo systemctl start nginx

Dừng và restart dịch vụ:

sudo systemctl restart nginx

Reload mà không ngắt kết nối (thường dùng khi bạn cần chỉnh sửa các cấu hình):

sudo systemctl reload nginx

Theo mặc định, Nginx được cấu hình để tự khởi động khi server boot. Bạn có thể tắt tính năng này bằng lệnh sau:

sudo systemctl disable nginx

Tương tự, để bật lại tính năng:

sudo systemctl enable nginx

Để cài đặt Nginx trên Ubuntu 20.04 một cách dễ dàng và không bị gặp phải bất cứ sự cố nào, bạn cần phải sử dụng một máy chủ có khả năng được mở rộng linh hoạt và có đầy đủ quyền quản trị. Một trong những lựa chọn tốt cho việc này đó là sử dụng VPS Vietnix.

Dịch vụ thuê server ảo tại Vietnix là một dịch vụ máy chủ ảo với nhiều đa dạng dịch vụ khác nhau như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe, VPS GPU. Mỗi gói có những ưu điểm riêng, giúp bạn dễ dàng lựa chọn dịch vụ phù hợp với nhu cầu sử dụng của mình. Bên cạnh đó, VPS Vietnix còn được đánh giá cao về tốc độ, sự ổn định và khả năng bảo mật giúp bạn hoàn toàn yên tâm trong quá trình sử dụng. Liên hệ để được tư vấn chi tiết về các gói VPS của Vietnix.

Bước 5: Thiết lập server block

Khi server web server Nginx, các server block (tương tự như host ảo trong Apache) có thể dùng để đóng gói các thông tin cấu hình và cho phép host nhiều hơn một domain trên server. Trong ví dụ này, bạn sẽ thử thiết lập một domain có tên your_domain.

Nginx trên Ubuntu 20.04 có một server block theo mặc định, được cấu hình để phân phối tài liệu ra thư mục tại /var/www/html. Cách này vẫn tốt nếu chỉ cần host một trang nhưng sẽ không thuận tiện khi bạn cần host nhiều trang khác nhau.

Thay vì chỉnh sửa /var/www/html, bạn có thể tạo một cấu trúc thư mục trong /var/www cho trang your_domain, còn /var/www/html sẽ được dùng làm thư mục mặc định nếu request của client không khớp với trang nào.

Để tạo thư mục cho tên miền your_domain, dùng flag -p tạo thư mục cha như sau:

sudo mkdir -p /var/www/your_domain/html

Lưu ý: Hãy thay your_domain bằng tên miền tương ứng của bạn.

Tiếp theo, gán quyền sở hữu thư mục bằng biến $USER:

sudo chown -R $USER:$USER /var/www/your_domain/html

Quyền truy cập của file cần cho phép chủ sở hữu đọc, ghi và thực thi các file. Còn các group và những user khác chỉ được quyền đọc và thực thi. Để chỉnh sửa quyền truy cập như vậy, bạn có thể dùng lệnh sau:

sudo chmod -R 755 /var/www/your_domain

Tiếp theo bạn cần tạo một trang mẫu index.html:

sudo nano /var/www/your_domain/html/index.html

Trong trang này, thêm đoạn HTML sau:

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain server block is working!</h1>
    </body>
</html>

Sau đó lưu lại rồi đóng file.

Để Nginx có thể cung cấp nội dung, bạn cần tạo một server block với các directive chính xác. Thay vì chỉnh sửa trực tiếp file cấu hình mặc định, bạn có thể tạo một file mới trong thư mục /etc/nginx/sites-available/your_domain:

sudo nano /etc/nginx/sites-available/your_domain

Paste đoạn cấu hình sau vào file:

server {
        listen 80;
        listen [::]:80;

        root /var/www/your_domain/html;
        index index.html index.htm index.nginx-debian.html;

        server_name your_domain www.your_domain;

        location / {
                try_files $uri $uri/ =404;
        }
}

Cấu hình này cũng không có gì khác biệt so với file mặc định, chỉ khác rằng file cấu hình sẽ sửa your_domain lại thành tên miền tương ứng ở dòng rootserver_name.

Tiếp theo bạn cần enable file này bằng cách tạo một liên kết đến thư mục sites-enabled mà Nginx đọc khi khởi động:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Lưu ý: Nginx sử dụng liên kết tượng trưng (symbolic link, hay symlink) để theo dõi các server block được enable. Việc tạo symlink cũng giống như tạo shortcut trên ổ đĩa.

Hiện tại có hai server block được enable và cấu hình để phản hồi các request dựa trên các directive listenserver_name:

  • your_domain: Phản hồi lại request cho your_domainwww.your_domain
  • default: Phản hồi lại mọi request trên port 80 mà không khớp với hai block còn lại

Ngoài ra, để tránh sự cố bộ nhớ hash bucket khi thêm tên server mới vào, bạn có thể chỉnh giá trị trong file /etc/nginx/nginx.conf:

sudo nano /etc/nginx/nginx.conf

Tìm directive server_names_hash_bucket_size, xóa ký tự # để uncomment dòng này.

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Sau đó lưu rồi đóng file lại.

Tiếp theo, kiểm tra xem có lỗi cú pháp nào trong các file Nginx hay không:

sudo nginx -t

Sau khi kiểm tra xong, bạn có thể restart lại Nginx để áp dụng các thay đổi:

sudo systemctl restart nginx

Bây giờ Nginx có thể bắt đầu phục vụ tên miền mà bạn đã cấu hình. Bây giờ hãy thử truy cập vào http://your_domain để kiểm tra:

Thông báo cấu hình thành công
Thông báo cấu hình thành công

Bước 6: Làm quen với một số file và thư mục trong Nginx

Sau khi hoàn tất việc install Nginx trên Ubuntu và cài đặt để host tên miền, ở phần cuối cùng bạn sẽ tìm làm quen với một số thư mục và file quan trọng trong Nginx.

Nội dung

/var/www/html: Nội dung chính của web, theo mặc định thì chỉ chứa trang Nginx gốc mà bạn đã thấy ở các phần trên. Bạn có thể thay đổi bằng cách chỉnh file cấu hình Nginx.

Cấu hình server

  • /etc/nginx: Thư mục cấu hình Nginx, chứa mọi file cấu hình.
  • /etc/nginx/nginx.conf: File cấu hình chính của Nginx, có thể được chỉnh sửa để thay đổi cấu hình global của Nginx.
  • /etc/nginx/sites-available/: Thư mục lưu trữ các server block trên mỗi trang được enable. Thường thì được tạo bằng cách liên kết với các file cấu hình trong thư mục sites-available.
  • /etc/nginx/snippets: Chứa các đoạn (fragment) cấu hình có thể được đưa vào những vị trí khác trong cấu hình Nginx. Thường thì những đoạn config có thể lặp lại là các thành phần tốt để refactor thành những đoạn mã (snippet).

Server Log

  • /var/log/nginx/access.log: Chứa bản ghi mọi request đến web server.
  • /var/log/nginx/error.log: Chứa bản ghi các lỗi Nginx.

Vietnix là một trong những công ty đi đầu trong lĩnh vực cung cấp giải pháp hosting, VPS, tên miền với hơn 10 năm kinh nghiệm hoạt động. Trong suốt thời gian đó, chúng tôi đã phục vụ cho hơn 50.000 khách hàng cá nhân và doanh nghiệp lớn như SEOSONA, GTV, UB Group, SAGO Media, iVIVU, Vietnamworks,…

Tính đến hiện tại, Vietnix đã tiến hành kích hoạt hơn 100.000 dịch vụ cho những khách hàng có nhu cầu và đạt được tỉ lệ giới thiệu sau khi sử dụng lên tới 97%. Ngoài ra, chúng tôi cũng vinh dự được trao giải thưởng Thương hiệu Việt Nam xuất sắc năm 2022, cho thấy rằng Vietnix là một thương hiệu được người dùng và các tổ chức trong ngành đánh giá cao. Hãy để Vietnix cùng đồng hành với thành công của bạn ngay hôm nay.

Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093 – 07 088 44444
  • Email: sales@vietnix.com.vn

Lời kết

Bài viết này đã hướng dẫn chi tiết các bước cài đặt Nginx trên Ubuntu 20.04, cũng như cách host tên miền và làm quen với một số file quan trọng trong Nginx. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần bình luận bên dưới để được Vietnix hỗ trợ nhanh nhất.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG