Cài đặt Nginx trên Debian 11 - Install Nginx on Debian 11

Nginx là một máy chủ web miễn phí và mã nguồn mở được sử dụng để chứa các trang web và ứng dụng có quy mô khác nhau. Phần mềm này nổi tiếng với tác động thấp đến tài nguyên bộ nhớ, khả năng mở rộng cao và kiến trúc sự kiện mô-đun, có thể đảm bảo hiệu suất an toàn và đáng tin cậy. Không chỉ là một máy chủ web, Nginx còn hoạt động như một trình cân bằng tải, bộ nhớ cache HTTP và proxy ngược. Trong hướng dẫn này, bạn sẽ install Nginx trên máy chủ Debian 11, điều chỉnh cài đặt tường lửa và tìm hiểu cách quản lý một số quy trình Nginx.

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

  • Một người dùng thông thường không phải là root với đặc quyền sudo đã cấu hình trên máy chủ của bạn.
  • Một tường lửa hoạt động.

Nếu bạn muốn hoàn thành các bước cuối cùng của hướng dẫn này, bạn sẽ cần một tên miền đã đăng ký.

Tiến hành install Nginx trên Debian 11

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

Nginx có sẵn trong kho gói phần mềm mặc định của Debian, cho phép bạn cài đặt từ các công cụ quản lý gói thông thường.

Đầu tiên, cập nhật chỉ mục gói cục bộ để phản ánh các thay đổi mới nhất từ nguồn gốc:

sudo apt update

Sau đó, cài đặt gói nginx:

sudo apt install nginx

Xác nhận việc cài đặt bằng cách nhập Y, sau đó nhấn Enter để tiếp tục. apt sẽ cài đặt Nginx và các phụ thuộc cần thiết lên máy chủ của bạn.

Bước 2 – Điều chỉnh cài đặt tường lửa

Trước khi thử nghiệm Nginx, cần điều chỉnh cài đặt tường lửa để cho phép truy cập từ bên ngoài vào các cổng web mặc định. Giả sử bạn đã làm theo hướng dẫn trong yêu cầu tiên quyết, bạn nên đã cấu hình tường lửa UFW để hạn chế truy cập vào máy chủ của bạn.

Trong quá trình cài đặt, Nginx đăng ký với UFW để cung cấp một số hồ sơ ứng dụng có thể được sử dụng để kích hoạt hoặc vô hiệu hóa truy cập vào Nginx qua tường lửa.

Liệt kê các hồ sơ ứng dụng UFW bằng cách nhập:

sudo ufw app list

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

Output
Available applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPs
OpenSSH

Từ kết quả đầu ra, có ba hồ sơ khả dụng cho Nginx:

  • Nginx Full: Hồ sơ này mở cả cổng 80 (luồng dữ liệu web bình thường không mã hóa) và cổng 443 (luồng dữ liệu mã hóa TLS/SSL)
  • Nginx HTTP: Hồ sơ này chỉ mở cổng 80 (luồng dữ liệu web bình thường không mã hóa)
  • Nginx HTTPS: Hồ sơ này chỉ mở cổng 443 (luồng dữ liệu mã hóa TLS/SSL)

Đề xuất bạn kích hoạt hồ sơ hạn chế nhất vẫn cho phép luồng dữ liệu bạn đã cấu hình. Vì bạn chưa cấu hình TLS/SSL cho máy chủ của bạn trong hướng dẫn này, bạn chỉ cần cho phép luồng dữ liệu cho HTTP trên cổng 80.

Kích hoạt điều này bằng cách nhập:

sudo ufw allow 'Nginx HTTP'

Xác minh thay đổi bằng cách nhập:

sudo ufw status

Kết quả đầu ra chỉ ra luồng dữ liệu HTTP đượ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 Web Server

Khi quá trình cài đặt kết thúc, Debian 11 khởi động Nginx. Máy chủ web nên đã hoạt động.

Bạn có thể kiểm tra bằng hệ thống khởi động systemd để đảm bảo dịch vụ đang chạy:

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 Tue 2022-07-12 20:59:20 UTC; 17h ago
Docs: man:nginx(8)
Main PID: 2887 (nginx)
Tasks: 2 (limit: 1132)
Memory: 4.2M
CPU: 81ms
CGroup: /system.slice/nginx.service
├─2887 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2890 nginx: worker process

Kết quả đầu ra này cho thấy rằng dịch vụ đã khởi động 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ủ mặc định của Nginx để xác nhận phần mềm đang hoạt động bình thường bằng cách truy cập địa chỉ IP của máy chủ của bạn. Nếu bạn không biết địa chỉ IP của máy chủ của bạn, bạn có thể nhập lệnh sau tại dấu nhắc lệnh của máy chủ:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Bạn sẽ nhận được một số dòng trả về. Bạn có thể thử mỗi dòng trong trình duyệt web của bạn để xem chúng hoạt động.

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

http://your_server_ip

Trang chủ mặc định của Nginx sẽ xuất hiện trên trình duyệt web của bạn:

install nginx debian 11

Trang này được bao gồm trong Nginx để cho bạn thấy rằng máy chủ đang hoạt động đúng cách

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

Bây giờ bạn đã có máy chủ web hoạt động, bạn có thể xem xét một số lệnh quản lý cơ bản.

Dừng máy chủ web của bạn:

sudo systemctl stop nginx

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

sudo systemctl start nginx

Dừng và sau đó khởi động dịch vụ lại:

sudo systemctl restart nginx

Nếu bạn đang thay đổi cấu hình, Nginx thường có thể tải lại mà không cần ngắt kết nối:

sudo systemctl reload nginx

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

sudo systemctl disable nginx

Để kích hoạt lại dịch vụ khởi động khi máy khởi động, bạn có thể nhập:

sudo systemctl enable nginx

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ư các máy ảo trong Apache) được sử dụng để đóng gói chi tiết cấu hình và chứa nhiều tên miền hơn một máy chủ duy nhất. Các ví dụ sau sử dụng your_domain, nhưng bạn nên thay thế bằng tên miền thực tế của bạn.

Nginx trên Debian 11 có một khối máy chủ được kích hoạt theo mặc định được cấu hình để phục vụ tài liệu từ một thư mục tại /var/www/html. Trong khi điều này hoạt động tốt cho một trang web duy nhất, nó có thể trở nên không quản lý được nếu bạn đang lưu trữ nhiều trang web. Thay vì chỉnh sửa /var/www/html, hãy tạo cấu trúc thư mục trong /var/www cho trang web của bạn (your_domain), để lại /var/www/html ở chỗ làm mặc định để phục vụ nếu yêu cầu từ khách hàng không khớp với bất kỳ trang web nào 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 cha cần thiết:

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

Tiếp theo, gán quyền sở hữu của thư mục với biến môi trường $USER, tham chiếu đến người dùng hệ thống hiện tại của bạn:

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

Quyền của thư mục gốc web của bạn nên đúng nếu bạn chưa sửa đổi giá trị umask của mình, nhưng bạn có thể đảm bảo bằng cách nhập:

sudo chmod -R 755 /var/www/your_domain

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

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! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>

Lưu và đóng tệp khi bạn hoàn thành. Trong nano, bạn có thể thực hiện điều này bằng cách nhấn CTRL + X, sau đó Y khi được hỏi và sau đó ENTER.

Để Nginx phục vụ nội dung này, bạn phải tạo một khối máy chủ với các chỉ thị chính xác trỏ đến thư mục web tùy chỉnh của bạn. Thay vì chỉnh sửa 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

Thêm khối cấu hình sau, tương tự như mặc định, nhưng đã cập nhật cho thư mục và tên miền mới của bạn: /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;
}
}

Chú ý cấu hình gốc đã được cập nhật cho thư mục mới và server_name cho tên miền của bạn. Nhớ thay thế your_domain bằng tên miền thực tế của bạn.

Tiếp theo, kích hoạt khối máy chủ này bằng cách tạo một liên kết tượng trưng đến tệp cấu hình tùy chỉnh của bạn bên trong thư mục sites-enabled, mà Nginx đọc trong quá trình khởi động:

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

Máy chủ của bạn hiện đã có hai khối máy chủ được kích hoạt và cấu hình để phản hồi các yêu cầu dựa trên các chỉ thị listenserver_name của họ (bạn có thể đọc thêm về cách Nginx xử lý các chỉ thị này ở đây):

  • your_domain: Sẽ phản hồi các yêu cầu đối với your_domain và www.your_domain.
  • default: Sẽ phản hồi các yêu cầu trên cổng 80 mà không khớp với hai khối còn lại.

Để tránh vấn đề về bộ nhớ hash bucket có thể phát sinh khi thêm tên máy chủ bổ sung vào cấu hình của bạn, cần điều chỉnh một giá trị duy nhất trong tệp /etc/nginx/nginx.conf. Mở tệp:

sudo nano /etc/nginx/nginx.conf

Tìm chỉ thị server_names_hash_bucket_size và loại bỏ ký hiệu # để bỏ dấu chú thích dòng này: /etc/nginx/nginx.conf

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

Lưu và đóng tệp khi bạn hoàn thành.

Tiếp theo, 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:

sudo nginx -t

Nếu không có vấn đề gì, đầu ra sẽ là:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Sau khi kiểm tra cấu hình của bạn thành công, khởi động lại Nginx để kích hoạt các thay đổi:

sudo systemctl restart nginx

Bây giờ Nginx đang 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. HTML tùy chỉnh bạn đã tạo trong thư mục /var/www/your_domain/html/index.html sẽ được hiển thị ở đây:

install nginx debian 11

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

Bây giờ bạn đã biết cách quản lý dịch vụ Nginx, bạn nên dành thời gian để 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ế, mặc định chỉ bao gồm trang mặc định của Nginx mà bạn đã thấy trước đây, được phục vụ từ thư mục /var/www/html. Điều này có thể được thay đổi bằng cách sửa các 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 để thay đổi cấu hình toàn cục của Nginx.
  • /etc/nginx/sites-available/: Thư mục nơi khối máy chủ cho từng trang web 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 sites-enabled. 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 với thư mục khác.
  • /etc/nginx/sites-enabled/: Thư mục nơi lưu trữ các khối máy chủ đã được kích hoạt cho từng trang web. Thông thường, 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 sites-available.
  • /etc/nginx/snippets: Thư mục này chứa các đoạn cấu hình mà có thể được bao gồm ở nơi khác trong cấu hình Nginx. Các đoạn cấu hình có thể lặp lại có thể là các ứng viên tốt cho việc tách thành các đoạn.

Nhật ký máy chủ

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

Kết luận: Bạn đã install thành công Nginx trên Debian 11, bạn có nhiều lựa chọn về loại nội dung để phục vụ và các công nghệ bạn có thể sử dụng, giúp tạo ra trải nghiệm giàu có hơn cho người dùng của bạn.

Mọi người cũng tìm kiếm: install nginx debian, install nginx debian 11, how to install nginx on debian 11, debian install nginx, install nginx on debian 11, install nginx on debian, nginx debian

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