Cài đặt Nginx trên VPS Ubuntu là gì? Phần mềm web server dùng Nginx có suất cao hơn so với Apache HTTP Server hay không? Cần trải qua bao nhiêu bước để có thể hoàn thành 1 web server?

Nginx là gì?

NGINX là một Web Server mạnh mẽ mã nguồn mở. Nginx sử dụng kiến trúc đơn luồng, hướng sự kiện vì thế nó hiệu quả hơn Apache server. Được sử  dụng phổ biến nhất trên thế giới và chịu trách nhiệm lưu trữ một số trang web lớn. Có lưu lượng truy cập cao nhất trên internet.

Trong bài hướng dẫn dưới đây, Thuê Cloud sẽ đi chi tiết hướng dẫn cách Cài đặt Nginx trên VPS Ubuntu 20.04. Điều chỉnh tường lửa, quản lý quy trình Nginx và thiết lập các khối máy chủ để lưu trữ nhiều tên miền từ một máy chủ.

1. Cài đặt Nginx

Vì Nginx có sẵn trong các kho mặc định của Ubuntu nên có thể cài đặt nó từ các kho này bằng apt hệ thống đóng gói. Vì đây là lần tương tác đầu với apt, nên cần cập nhật chỉ mục gói địa phương để có quyền truy cập vào danh sách gói gần đây nhất. Sau đó, mới có thể cài đặt nginx:

sudo apt update
sudo apt install nginx

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

2. Thiết lập tường lửa

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

Sử dụng câu lệnh ufw để liệt kê các ứng dụng cấu hình.

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). Cổng 443 (lưu lượng truy cập được mã hóa TLS/SSL)
  • Nginx HTTP: Profile 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 bậ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. Bằng các câu lệnh dưới đây, 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 bằng cách gõ:

sudo ufw allow 'Nginx HTTP'

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

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)

3. Kiểm tra máy chủ web 

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

Bạn có thể kiểm tra systemd hệ thống init để đả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

Kết quả đã cài các dịch vụ thành công. Tuy nhiên bạn nên kiểm tra với 1 trang từ Nginx để kiểm chứng chính xác việc các dịch vụ đã hoàn thành chưa.

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 không biết địa chỉ IP máy chủ của mình, có thể tìm thấy nó bằng cách sử dụng công cụ ianhazip.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 đã có địa chỉ IP của máy chủ.Tiến hành 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:

Trang mặc định của Nginx

Nếu màn hình của bạn xuất hiện trang thái này, nghĩa là máy chủ của bạn đang chạy bình thường và sẵn sàng để quản lý.

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. Tuy nhiên bạn cần nắm được các câu lệnh cơ bản để có thể quản lý Nginx sau.

Để dừng máy chủ web bạn gõ:

sudo systemctl stop nginx

Để khởi động máy chủ web khi máy chủ web bị dừng, gõ câu lệnh.

sudo systemctl start nginx

Để dừng và sau đó bắt đầu lại dịch vụ sử dụng câu lệnh:

sudo systemctl restart nginx

Nếu bạn chỉ thực hiện thay đổi cấu hình, Nginx 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 không muốn trạng thái này bạn có thể tắt nó bằng câu lệnh sau:

sudo systemctl disable nginx

Để kích hoạt trở lại dịch vụ bạn vừa tắt phía trên bạn có thể gõ:

sudo systemctl enable nginx

Bằng các câu lệnh trên bạn đã có thể định được cấu hình trang web của mình.

5. Thiết lập khối máy chủ

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ủ. Bây giờ 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 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 bên trong /var/www cho trang your_domain. Giữ nguyên /var/www/html tại vị trí 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ỳ trang web nào.

Tạo thư mục & quyền cho User

Tạo thư mục cho your_domain như sau, sử dụng -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 $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 umask giá trị của mình, 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, 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 index.html trang mẫu nano bằng 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 tệp bằng cách nhấn Ctrl+X để thoát, sau đó khi được nhắc lưu, Y (Yes) sau đó nhấn 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

Cấu hình khối

Dán vào khối cấu hình sau, khối này tương tự như khối mặc định nhưng được cập nhật cho thư mục và tên miền mớ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 ý ở đây đã cập nhật root cấu hình cho thư mục mới và server_name tên miền. Tiếp theo, kích hoạt tệp bằng cách tạo một liên kết từ nó đến thư sites-enabled mục 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 để 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 sites-enabled trong khi vẫn giữ khối máy chủ sites-available 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 lệnh listenyour_domain:

  • your_domain: Sẽ đáp ứng các yêu cầu về your_domain 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 # biểu tượng để bỏ ghi chú dòng. Nếu bạn đang sử dụng nano, bạn có thể nhanh chóng tìm kiếm các từ trong tệp bằng cách nhấn CTRL và w .Lưu ý: Nhận xét các dòng mã – thường bằng cách đặt # ở đầu dòng – là một cách khác để vô hiệu hóa chúng mà không cần phải xóa. Nhiều tệp cấu hình đi kèm với nhiều tùy chọn được nhận xét để có thể bật hoặc tắt. Bằng cách chuyển đổ giữa mã hoạt động và tài liệu.

/etc/nginx/nginx.conf

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

Hoàn tất

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, 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 bạn sẽ thấy nội dung như phía dưới.

Khối máy chủ đầu tiên của Nginx

Làm quen với các tệp và thư mục trên Nginx

Với 5 bước Cài đặt Nginx trên VPS Ubuntu trên bạn đã có thể biến máy chủ của bạn thành máy chủ web cơ bản. Tuy nhiên 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. Để có thể biết cách quản lý dịch vụ Nginx.

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ư /var/www/html mục. Bạn 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 sites-enabled thư mục. 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àyy. Đượ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ủ trên mỗi trang đã kích hoạt. 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 sites-available thư mục.
  • /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.

Nhật ký máy chủ

  • /var/log/nginx/access.log: Mọi yêu cầu tới máy chủ web của bạn đề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.

Tổng kết

Trên đây là bài hướng dẫn Cài đặt Nginx trên VPS Ubuntu của Thuê Cloud. Tính tới thiểm này Thuê Cloud đã cung cấp hàng nghìn máy chủ Cloud VPS Mỹ làm Server web cũng như Game server. Với lợi thế lượng tài nguyên khổng lồ, thuê máy chủ ảo tại Thuecloud,com. Bạn không cần lo lắng về vấn đề thiếu hụt tài nguyên, hay lượng truy cập khủng tăng đột biến. Chúng tôi đảm bảo tài nguyên cũng như các yếu tố kỹ thuật bảo vệ máy chủ của bạn. Click để xem chi tiết về các dòng máy chủ ảo chủ lực tại Thuê Cloud bao gồm: VPS Việt Nam, VPS USA, VPS Singapore. Mời bạn tham khảo bảng giá và liên lệ tư vấn bằng các cổng thông tin phía cuối bài viết.

Liên hệ ThueCloud
Telegram ThueCloud
Telegram
Liên hệ với đội ngũ của ThueCloud.com qua Telegram
Rất nhiệt tình trả lời tin nhắn !
Messenger ThueCloud
Messenger
Liên hệ với đội ngũ của ThueCloud.com qua Messenger
a Rất nhiệt tình trả lời tin nhắn !
Messenger ThueCloud
Zalo 0382.126.579
Liên hệ với đội ngũ của ThueCloud.com qua Zalo 0382.126.579
Rất nhiệt tình trả lời tin nhắn !

Trả lời

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 *