Cài đặt Nginx trên Ubuntu 22.04 - Install Nginx on Ubuntu 22.04
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 tôi sẽ chỉ cần cho phép lưu lượng truy cập trên cổng 80
.
Bạn có thể kích hoạt tính năng này bằng cách gõ:
sudo ufw allow 'Nginx HTTP'
Bạn có thể xác minh thay đổi bằng cách gõ:
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 của bạn
Khi kết thúc quá trình cài đặt, Ubuntu 22.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 2022-03-01 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
Như vậy cài đặt đã 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 của bạn, gõ:
sudo systemctl stop nginx
Để khởi động máy chủ web khi nó bị dừng, hãy gõ:
sudo systemctl start nginx
Để dừng và sau đó bắt đầu lại dịch vụ, hãy gõ:
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. Để thực hiện việc này, gõ:
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 bằng cách gõ:
sudo systemctl disable nginx
Để kích hoạt lại dịch vụ để khởi động khi khởi động, bạn có thể gõ:
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ủ (Được khuyến nghị)
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 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 22.04 có một khối máy chủ được bật theo mặc định được định cấu hình để phân phát các tài liệu ngoài 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 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:
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 gốc 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 khả dụng 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_domain
vàwww.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, 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:
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 thư mục của Nginx
/etc/nginx
: lưu trữ tất cả các tệp cấu hình Nginx/etc/nginx/nginx.conf
: là tệp cấu hình chính của Nginx. Bạn có thể sửa đổi tệp này để thay đổi cấu hình toàn cầu của Nginx./etc/nginx/sites-available/
: lưu trữ các khối máy chủ cho mỗi trang web. Nginx sẽ chỉ sử dụng các tệp cấu hình trong thư mục này khi chúng được liên kết với thư mục sites-enabled. Thông thường, đây là nơi bạn thực hiện tất cả cấu hình khối máy chủ và sau đó kích hoạt chúng bằng cách liên kết tới thư mục khác./etc/nginx/sites-enabled/
: chứa các khối máy chủ đã được kích hoạt cho mỗi trang web. Thông thường, bạn sẽ tạo các liên kết tới các tệp cấu hình trong thư mục sites-available để kích hoạt chúng./etc/nginx/snippets
: chứa các đoạn mã cấu hình có thể được sử dụng ở nhiều nơi khác trong tệp cấu hình Nginx. Điều này giúp tạo ra cấu hình dễ dàng hơn bằng cách sử dụng các phần đoạn cấu hình lặp lại.
Nhật ký máy chủ
Các tệp nhật ký cho Nginx nằm trong thư mục /var/log/nginx
. Tệp /var/log/nginx/access.log
ghi lại mọi yêu cầu tới máy chủ web của bạn, trừ khi được cấu hình khác. Tệp /var/log/nginx/error.log
ghi lại mọi lỗi Nginx. Điều này giúp bạn theo dõi và giải quyết các sự cố một cách hiệu quả.
Phần kết luận
Trong bài viết này, chúng ta đã khám phá cách install và cấu hình Nginx trên máy chủ Ubuntu 22.04. Nginx không chỉ là một trong những máy chủ web phổ biến nhất trên thế giới, mà còn là một lựa chọn nhẹ nhàng và linh hoạt cho việc sử dụng làm máy chủ web hoặc proxy ngược. Bằng cách thực hiện các bước hướng dẫn trong bài viết, bạn có thể thiết lập và quản lý máy chủ Nginx một cách dễ dàng. Từ việc cài đặt Nginx, cấu hình tường lửa, quản lý quy trình Nginx cho đến thiết lập khối máy chủ để chứa nhiều tên miền trên cùng một máy chủ, chúng ta đã tìm hiểu cách thực hiện những nhiệm vụ quan trọng trong quá trình triển khai và quản lý máy chủ của mình.
Mọi người cùng tìm kiếm: install nginx ubuntu 22.04, nginx ubuntu 22.04, cài đặt nginx trên ubuntu 22.04, how to install nginx ubuntu 22.04, apt install nginx, cài đặt zabbix trên ubuntu 22.04, download nginx ubuntu 22.04, nginx for ubuntu 22.04
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:
👉 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