Cài đặt Nginx trên Ubuntu 20.04 - Install Nginx on Ubuntu 20.04

Nginx là một trong những máy chủ web phổ biến nhất trên thế giới, có trách nhiệm đăng hosting một số trang web lớn nhất và có lưu lượng truy cập cao nhất trên internet. Đây là một lựa chọn nhẹ nhàng có thể được sử dụng làm máy chủ web hoặc proxy nghịch đảo. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách install Nginx trên máy chủ Ubuntu 20.04. Điều chỉnh tường lửa, quản lý quy trình Nginx và thiết lập khối máy chủ để đăng hosting nhiều tên miền từ một máy chủ duy nhất.

Chuẩn bị trước khi cài đặt

  • Một người dùng thông thường, không phải root với các đặc quyền sudo được định cấu hình trên máy chủ.
  • Bạn nên đăng ký một tên miền trước khi hoàn thành các bước cuối cùng của hướng dẫn này.
  • Khi bạn đã có một tài khoản sẵn có, đăng nhập với tư cách người dùng thông thường (không phải người dùng root) để bắt đầu.

Tiến hành install Nginx trên Ubuntu 20.04

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

Vì Nginx có sẵn trong kho mặc định của Ubuntu nên có thể cài đặt nó từ các kho này bằng hệ thống đóng gói apt.

Bởi vì đây là lần giao tiếp đầu tiên của chúng ta với hệ thống đóng gói apt trong phiên này, chúng ta sẽ cập nhật chỉ mục gói cục bộ để có quyền truy cập vào danh sách gói mới nhất. Sau đó, chúng ta có thể cài đặt nginx:

sudo apt update sudo apt cài đặt nginx

Sau khi chấp nhận quy trình, apt sẽ cài đặt Nginx và mọi phụ thuộc cần thiết vào máy chủ của bạn.

Bước 2 - Điều chỉnh tường lửa

Trước khi thử nghiệm Nginx, phần mềm tường lửa cần được điều chỉnh để cho phép truy cập dịch vụ. Nginx tự đăng ký như một dịch vụ với ufw khi cài đặt, giúp việc cho phép truy cập Nginx trở nên đơn giản.

Liệt kê các cấu hình ứng dụng mà ufw biết cách làm việc bằng cách gõ:

sudo ufw app list

Bạn sẽ nhận được một danh sách các hồ sơ ứng dụng:

Output
Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Như được minh họa bằng đầu ra, có ba cấu hình có sẵn cho Nginx:

  • Nginx Full: Cấu hình này mở cả cổng 80 (lưu lượng truy cập web bình thường, không được mã hóa) và cổng 443 (lưu lượng truy cập được mã hóa TLS/SSL)
  • Nginx HTTP: Cấu hình này chỉ mở cổng 80 (lưu lượng truy cập web bình thường, không được mã hóa)
  • Nginx HTTPS: Cấu hình này chỉ mở cổng 443 (lưu lượng được mã hóa TLS/SSL)

Bạn nên kích hoạt cấu hình hạn chế nhất để vẫn cho phép lưu lượng truy cập bạn đã định cấu hình. Ngay bây giờ, chúng ta sẽ chỉ cần cho phép lưu lượng truy cập trên cổng 80.

Kích hoạt tính năng này như sau:

sudo ufw allow 'Nginx HTTP'

Xác minh thay đổi bằng lệnh sau:

sudo ufw status

Đầu ra sẽ cho biết lưu lượng HTTP nào được phép:

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 máy chủ web 

Khi kết thúc quá trình cài đặt, Ubuntu 20.04 khởi động Nginx. Máy chủ web đã được thiết lập và chạy.

Chúng ta có thể kiểm tra hệ thống init systemd để đảm bảo dịch vụ đang chạy bằng cách gõ:

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: active (running) 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

Theo xác nhận này, dịch vụ đã bắt đầu thành công. Tuy nhiên, cách tốt nhất để kiểm tra điều này là thực sự yêu cầu một trang từ Nginx.

Bạn có thể truy cập trang đích Nginx mặc định để xác nhận rằng phần mềm đang chạy bình thường bằng cách điều hướng đến địa chỉ IP máy chủ của bạn. Nếu bạn không biết địa chỉ IP máy chủ của mình, bạn có thể tìm thấy nó bằng cách sử dụng công cụ icanhazip.com, công cụ này sẽ cung cấp cho bạn địa chỉ IP công cộng của bạn khi nhận được từ một vị trí khác trên internet:

curl -4 icanhazip.com

Khi bạn có địa chỉ IP của máy chủ, hãy nhập địa chỉ đó vào thanh địa chỉ của trình duyệt:

http://your_server_ip

Bạn sẽ nhận được trang đích Nginx mặc định:

Nếu bạn đang ở trang này thì máy chủ của bạn đang chạy bình thường và sẵn sàng để quản lý.

Bước 4 - Quản lý quy trình Nginx

Bây giờ bạn đã thiết lập và chạy máy chủ web của mình, hãy xem lại một số lệnh quản lý cơ bản.

Dừng máy chủ web:

sudo systemctl stop nginx

Khởi động máy chủ web khi nó bị dừng:

sudo systemctl start nginx

Dừng và sau đó bắt đầu lại dịch vụ:

sudo systemctl restart nginx

Nếu bạn chỉ thực hiện thay đổi cấu hình, Nginx thường có thể tải lại mà không làm mất kết nối. Cài đặt bằng lệnh sau:

sudo systemctl reload nginx

Theo mặc định, Nginx được cấu hình để tự động khởi động khi máy chủ khởi động. Nếu đây không phải là điều bạn muốn, bạn có thể tắt hành vi này:

sudo systemctl disable nginx

Để kích hoạt lại dịch vụ để khởi động khi khởi động, bạn nhập như sau:

sudo systemctl enable nginx

Bây giờ bạn đã học các lệnh quản lý cơ bản và đã sẵn sàng định cấu hình trang web để lưu trữ nhiều tên miền.

Bước 5 - Thiết lập khối máy chủ (Tùy chọn)

Khi sử dụng máy chủ web Nginx, các khối máy chủ (tương tự như máy chủ ảo trong Apache) có thể được sử dụng để đóng gói chi tiết cấu hình và lưu trữ nhiều tên miền từ một máy chủ. Chúng tôi sẽ thiết lập một miền có tên your_domain, nhưng bạn nên thay thế tên miền này bằng tên miền của riêng bạn.

Nginx trên Ubuntu 20.04 có một khối máy chủ được kích hoạt, được định cấu hình để phục vụ các tài liệu từ một thư mục tại /var/www/html. Mặc dù điều này hoạt động tốt cho một trang web duy nhất, nhưng nó có thể trở nên khó sử dụng nếu bạn đang lưu trữ nhiều trang web. Thay vì sửa đổi /var/www/html, hãy tạo cấu trúc thư mục trong /var/www cho trang your_domain của chúng ta, để lại /var/www/html làm thư mục mặc định sẽ được cung cấp nếu yêu cầu của khách hàng không khớp với bất kỳ yêu cầu nào các trang web khác.

Tạo thư mục cho your_domain như sau, sử dụng cờ -p để tạo bất kỳ thư mục mẹ cần thiết nào:

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

Tiếp theo, gán quyền sở hữu thư mục với biến môi trường $USER:

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

Các quyền của web root của bạn phải chính xác nếu bạn chưa sửa đổi giá trị umask, giá trị này sẽ đặt quyền truy cập tệp mặc định. Để đảm bảo rằng các quyền của bạn là chính xác và cho phép chủ sở hữu đọc, ghi và thực thi các tệp trong khi chỉ cấp quyền đọc và thực thi cho các nhóm và những người khác, bạn có thể nhập lệnh sau:

sudo chmod -R 755 /var/www/your_domain

Tiếp theo, tạo một trang index.html mẫu bằng nano hoặc trình chỉnh sửa yêu thích của bạn:

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

Bên trong, thêm HTML mẫu sau:

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

Lưu và đóng file bằng cách nhấn Ctrl X để thoát, sau đó khi được nhắc lưu, nhấn Y rồi Enter.

Để Nginx phục vụ nội dung này, cần phải tạo một khối máy chủ với các chỉ thị chính xác. Thay vì sửa đổi trực tiếp tệp cấu hình mặc định, hãy tạo một tệp mới tại /etc/nginx/sites-available/your_domain:

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

Dán vào khối cấu hình sau, khối này tương tự như mặc định nhưng được cập nhật cho thư mục và tên miền mới của chúng tôi: /etc/nginx/sites-available/your_domain

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;

}

}

Lưu ý rằng chúng tôi đã cập nhật cấu hình root vào thư mục mới và server_name thành tên miền của chúng tôi.

Tiếp theo, hãy kích hoạt tệp bằng cách tạo một liên kết từ nó đến thư mục hỗ trợ trang web mà Nginx đọc trong khi khởi động:

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

Lưu ý: Nginx sử dụng một phương pháp phổ biến được gọi là liên kết tượng trưng hoặc liên kết tượng trưng để theo dõi khối máy chủ nào của bạn được bật. Tạo một liên kết tượng trưng cũng giống như tạo một lối tắt trên đĩa, để sau này bạn có thể xóa lối tắt khỏi thư mục hỗ trợ trang web trong khi vẫn giữ khối máy chủ trong các trang web có sẵn nếu bạn muốn bật nó.

Hai khối máy chủ hiện đã được kích hoạt và định cấu hình để đáp ứng các yêu cầu dựa trên chỉ thị listen và server_name của chúng (bạn có thể đọc thêm về cách Nginx xử lý các chỉ thị này tại đây):

  • your_domain: Sẽ đáp ứng các yêu cầu về your_domainwww.your_domain.
  • default: Sẽ đáp ứng mọi yêu cầu trên cổng 80 không khớp với hai khối còn lại.

Để tránh sự cố bộ nhớ nhóm băm có thể xảy ra khi thêm tên máy chủ bổ sung, cần phải điều chỉnh một giá trị trong tệp /etc/nginx/nginx.conf. Mở tập tin:

sudo nano /etc/nginx/nginx.conf

Tìm lệnh server_names_hash_bucket_size và xóa.

Lưu ý: Nhận xét các dòng mã - thường bằng cách đặt: /etc/nginx/nginx.conf

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

Lưu và đóng tập tin khi bạn hoàn tất.

Tiếp theo, hãy kiểm tra để đảm bảo rằng không có lỗi cú pháp trong bất kỳ tệp Nginx nào của bạn:

sudo nginx -t

Nếu không có bất kỳ vấn đề nào, hãy khởi động lại Nginx để kích hoạt các thay đổi của bạn:

sudo systemctl restart nginx

Nginx bây giờ sẽ phục vụ tên miền của bạn. Bạn có thể kiểm tra điều này bằng cách điều hướng đến http://your_domain, nơi bạn sẽ thấy nội dung như thế này:

install nginx ubuntu 20.04

Bước 6 - Làm quen với các tệp và thư mục Nginx quan trọng

Bây giờ bạn đã biết cách quản lý dịch vụ Nginx, bạn nên dành vài phút để làm quen với một số thư mục và tệp quan trọng.

Nội dung

  • /var/www/html: Nội dung web thực tế, theo mặc định chỉ bao gồm trang Nginx mặc định mà bạn đã thấy trước đó, được cung cấp bên ngoài thư mục /var/www/html. Điều này có thể được thay đổi bằng cách thay đổi tệp cấu hình Nginx.

Cấu hình máy chủ

  • /etc/nginx: Thư mục cấu hình Nginx. Tất cả các tệp cấu hình Nginx đều nằm ở đây.
  • /etc/nginx/nginx.conf: Tệp cấu hình Nginx chính. Điều này có thể được sửa đổi để thực hiện các thay đổi đối với cấu hình toàn cầu Nginx.
  • /etc/nginx/sites-available/: Thư mục nơi các khối máy chủ trên mỗi trang có thể được lưu trữ. Nginx sẽ không sử dụng các tệp cấu hình được tìm thấy trong thư mục này trừ khi chúng được liên kết với thư mục hỗ trợ trang web. Thông thường, tất cả cấu hình khối máy chủ được thực hiện trong thư mục này và sau đó được kích hoạt bằng cách liên kết đến thư mục khác.
  • /etc/nginx/sites-enabled/: Thư mục lưu trữ các khối máy chủ đã kích hoạt trên mỗi trang. Chúng được tạo bằng cách liên kết đến các tệp cấu hình được tìm thấy trong thư mục có sẵn của trang web.
  • /etc/nginx/snippets: Thư mục này chứa các đoạn cấu hình có thể được đưa vào nơi khác trong cấu hình Nginx. Các phân đoạn cấu hình có khả năng lặp lại là ứng cử viên sáng giá để tái cấu trúc thành các đoạn mã.

Nhật ký máy chủ

  • /var/log/nginx/access.log: Mọi yêu cầu tới máy chủ web đều được ghi lại trong tệp nhật ký này trừ khi Nginx được định cấu hình để thực hiện khác.
  • /var/log/nginx/error.log: Mọi lỗi Nginx sẽ được ghi lại trong nhật ký này.

Phần kết luận

Bây giờ bạn đã thành công install Nginx trên CentOS 8. Bạn có nhiều tùy chọn về loại nội dung sẽ phân phát và công nghệ bạn muốn sử dụng để tạo ra trải nghiệm phong phú hơn.

Mọi người cũng tìm kiếm: nginx ubuntu 20.04, cấu hình nginx trên ubuntu, install nginx ubuntu 20.04, install nginx ubuntu, cài đặt nginx trên ubuntu, nginx ubuntu

Các gói dịch vụ Cloud VPS của KDATA mang đến cho bạn nhiều lựa chọn về hiệu suất cũng như khả năng lưu trữ, mọi nhu cầu về doanh nghiệp đều được đáp ứng. KDATA đảm bảo khả năng uptime lên đến 99,99%, toàn quyền quản trị và free backup hằng ngày. Tham khảo ngay các gói dịch vụ Cloud VPS:

https://kdata.vn/cloud-vps

👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất