Cài đặt Nginx trên CentOS 8 - Install Nginx on CentOS 8

Nginx là một trong những máy chủ web phổ biến nhất trên thế giới và đóng trách nhiệm lưu trữ một số trang web lớn và phổ biến nhất trên internet. Nó thường tốn ít tài nguyên hơn Apache trong hầu hết các trường hợp và có thể được sử dụng như một 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 và cấu hình Nginx trên máy chủ CentOS phiên bản 8.

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

Để hoàn thành hướng dẫn install Nginx trên CentOS 8 một cách hoàn chỉnh, bạn cần:

  • Truy cập vào một máy chủ CentOS 8 với tư cách người dùng không phải là root có đặc quyền sudo.
  • Một tường lửa hoạt động trên máy chủ.

Tiến hành install Nginx trên CentOS 8

Bước 1: Cài đặt máy chủ Web Nginx

Để cài đặt Nginx, chúng ta sẽ sử dụng trình quản lý gói dnf, đây là trình quản lý gói mặc định mới trên CentOS 8.

Cài đặt gói nginx bằng:

sudo dnf install nginx

Khi được yêu cầu, nhập y để xác nhận bạn muốn cài đặt nginx. Sau đó, dnf sẽ cài đặt Nginx và bất kỳ phụ thuộc cần thiết nào cho máy chủ.

Sau khi cài đặt hoàn tất, chạy các lệnh sau để kích hoạt và khởi động máy chủ:

sudo systemctl enable nginx
sudo systemctl start nginx

Điều này sẽ làm cho Nginx khởi động cùng với hệ thống.

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

Trong trường hợp bạn đã kích hoạt tường lửa firewalld, bạn cần điều chỉnh cài đặt tường lửa để cho phép kết nối từ bên ngoài vào máy chủ web Nginx của bạn, mà mặc định chạy trên cổng 80.

Chạy lệnh sau để kích hoạt kết nối HTTP cố định trên cổng 80:

sudo firewall-cmd --permanent --add-service=http

Để xác minh rằng dịch vụ tường lửa http đã được thêm vào đúng cách, bạn có thể chạy:

sudo firewall-cmd --permanent --list-all

Bạn sẽ thấy đầu ra như sau:

Output
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

Để áp dụng các thay đổi, bạn cần tải lại dịch vụ tường lửa:

sudo firewall-cmd --reload

Bây giờ máy chủ Nginx của bạn đã được cài đặt hoàn chỉnh và sẵn sàng để được truy cập bởi người truy cập từ bên ngoài.

Bước 3: Kiểm tra máy chủ Web

Bạn có thể kiểm tra xem máy chủ web Nginx của bạn đã hoạt động hay chưa bằng cách truy cập vào địa chỉ IP công cộng hoặc tên miền của máy chủ từ trình duyệt web của bạn.

Nếu bạn không có tên miền được liên kết với máy chủ của bạn và bạn không biết địa chỉ IP công cộng của máy chủ, bạn có thể tìm nó bằng cách chạy lệnh sau:

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

Điều này sẽ hiển thị một số địa chỉ IP. Bạn có thể thử từng địa chỉ trong trình duyệt web của bạn.

Như một phương pháp thay thế, bạn có thể kiểm tra địa chỉ IP nào có thể truy cập được, nhìn từ các vị trí khác trên internet:

curl -4 icanhazip.com

Gõ địa chỉ bạn nhận được trong trình duyệt web và bạn sẽ đến trang chào mừng mặc định của Nginx:

install nginx centos 8

Nếu bạn thấy trang này, máy chủ web của bạn đã được cài đặt đúng cách.

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

Bây giờ bạn đã có máy chủ web hoạt động, chúng ta sẽ xem xét cách quản lý dịch vụ Nginx thông qua systemctl.

Khi bạn cần dừng máy chủ web, bạn có thể sử dụng:

sudo systemctl stop nginx

Để bắt đầu máy chủ web khi nó đã dừng, gõ:

sudo systemctl start nginx

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

sudo systemctl restart nginx

Nginx cũng có thể nạp lại các thay đổi cấu hình mà không làm mất kết nối. Để làm điều này, gõ:

sudo systemctl reload nginx

Mặc định, Nginx được cấu hình để tự động khởi động khi máy chủ khởi động. Nếu điều này không phải là ý muốn của bạn, bạn có thể vô hiệu hóa hành vi này bằng cách gõ:

sudo systemctl disable nginx

Để kích hoạt lại dịch vụ và làm cho Nginx khởi động cùng với hệ thống, bạn có thể sử dụng:

sudo systemctl enable nginx

Bước 5: Hiểu rõ về 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 vài phút để làm quen với một số thư mục và tệp quan trọng.

Nội dung

  • /usr/share/nginx/html: Nội dung web thực tế, mà theo mặc định chỉ bao gồm trang Nginx mặc định bạn đã thấy trước đó, được phục vụ từ thư mục
  • /usr/share/nginx/html:Điều này có thể thay đổi bằng cách sửa đổi 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ầu của Nginx.
  • /etc/nginx/conf.d/: Thư mục này chứa các tệp cấu hình khối máy chủ, nơi bạn có thể xác định các trang web được lưu trữ trong Nginx. Một cách tiếp cận điển hình là để mỗi trang web trong một tệp riêng biệt có tên dựa trên tên miền của trang web, ví dụ như your_domain.conf.

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 sẽ đượ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: Mọi lỗi Nginx sẽ được ghi lại trong tệp nhật ký này.

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

Trong trường hợp bạn muốn lưu trữ nhiều trang web trong cùng một máy chủ web Nginx, bạn sẽ cần thiết lập khối máy chủ. Khối máy chủ Nginx hoạt động tương tự như virtual host Apache, cho phép một máy chủ duy nhất phản hồi với nhiều tên miền và phục vụ nội dung khác nhau cho từng tên miền. Trên CentOS 8, các khối máy chủ được xác định trong các tệp .conf tại /etc/nginx/conf.d.

Chúng ta sẽ thiết lập một khối máy chủ cho một tên miền có tên your_domain.

Mặc định, Nginx trên CentOS 8 được cấu hình để phục vụ tài liệu từ một thư mục tại /usr/share/nginx/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ông quản lý được nếu bạn lưu trữ nhiều trang web. Thay vì sửa đổi /usr/share/nginx/html, chúng ta sẽ tạo một cấu trúc thư mục trong /var/www cho trang web your_domain, để /usr/share/nginx/html vẫn là thư mục mặc định để phục vụ nếu yêu cầu từ máy khách không phù hợ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 cho thư mục với biến môi trường $USER, nó nên 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

Tiếp theo, chúng ta sẽ tạo một trang index.html mẫu để kiểm tra cấu hình khối máy chủ. Trình soạn thảo văn bản mặc định đi kèm với CentOS 8 là vi. vi là một trình soạn thảo văn bản cực kỳ mạnh mẽ, nhưng nó có thể khá khó hiểu đối với người dùng thiếu kinh nghiệm với nó. Bạn có thể muốn cài đặt một trình soạn thảo thân thiện hơn với người dùng như nano để dễ dàng chỉnh sửa các tệp cấu hình trên máy chủ CentOS 8 của bạn:

sudo dnf install nano

Bây giờ bạn sử dụng nano để tạo tệp index.html mẫu:

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

Bên trong tệp đó, thêm mã HTML 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. Nếu bạn đã sử dụng nano, bạn nhấn CTRL + X, Y, sau đó ENTER.

Để Nginx có thể phục vụ nội dung này, chúng ta cần 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 chúng ta. Chúng ta sẽ tạo một khối máy chủ mới tại /etc/nginx/conf.d/your_domain.conf:

sudo nano /etc/nginx/conf.d/your_domain.conf

Dán khối cấu hình sau vào tệp: /etc/nginx/conf.d/your_domain.conf

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 và đóng tệp khi bạn hoàn tất việc chỉnh sửa nội dung của nó.

Để đả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, chạy:

sudo nginx -t

Nếu không có vấn đề gì, bạn sẽ thấy đầu ra sau:

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

Khi kiểm tra cấu hình của bạn vượt qua, khởi động lại Nginx để bật các thay đổi:

sudo systemctl restart nginx

Trước khi bạn kiểm tra các thay đổi từ trình duyệt của bạn, bạn cần cập nhật ngữ cảnh bảo mật SELinux của máy chủ để cho phép Nginx phục vụ nội dung từ thư mục /var/www/your_domain.

Lệnh sau sẽ cho phép thư mục tùy chỉnh của bạn được phục vụ như nội dung HTTP:

chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/

Bây giờ bạn có thể kiểm tra cài đặt tên miền tùy chỉnh của bạn bằng cách truy cập http://your_domain, bạn sẽ thấy một cái gì đó như thế này:

install nginx centos 8

Trang này đang hiển thị mã HTML mà chúng ta đã xác định trong thư mục gốc tùy chỉnh được tạo cho khối máy chủ. Nếu bạn có thể thấy trang này, điều đó có nghĩa là máy chủ Nginx của bạn đã được cấu hình đúng để phục vụ tên miền của bạn.

Trong hướng dẫn này, chúng ta đã thấy cách install và thiết lập Nginx trên CentOS 8, một máy chủ web và proxy nghịch đảo hiệu suất cao. Chúng ta đã xem xét cách quản lý dịch vụ Nginx đang chạy trên máy chủ của bạn và các thư mục chính được sử dụng bởi Nginx để lưu trữ các tệp cấu hình, nội dung và nhật ký.

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