[NGINX] Hướng dẫn cài đặt Nginx trên CentOS 8

30/12/2020

NGINX (đọc là “engine x”) là một phần mềm mã nguồn mở cho web serving, reverse proxying, caching, load balancing, media streaming,…Ban đầu nó giống như một web server được thiết kế để cho hiệu suất(performance) và tính ổn định(stability) cao nhất. Ngoài khả năng là 1 Web server, NGINX cũng có thể hoạt động như một proxy server cho email (IMAP, POP3 và SMTP) và reverse proxy và load balancer cho HTTP, TCP, và UDP server.

Bài viết này sẽ hướng dẫn bạn cài đặt Nginx trên CentOS 8.

Mục lục

  1. Chuẩn bị
  2. Stable vs. mainline version
  3. Cài đặt
    3.1. Cài bằng package từ OS Repository
    3.2. Cài bằng package từ kho lưu trữ của NGINX Inc.’s
    3.3. Cài từ source code

I – Chuẩn bị

1 máy chạy hệ điều hành CentOS 8, RAM tối thiểu 1GB, disk 10GB.

II- Stable vs. mainline version

Nginx Open Source có sẵn trong hai phiên bản:

  • Mainline – Bao gồm các tính năng mới nhất và sửa lỗi và luôn cập nhật. Nó đáng tin cậy, nhưng nó có thể bao gồm một số mô-đun thử nghiệm và nó cũng có thể có một số lỗi mới.
  • Ổn định(Stable) – Không bao gồm tất cả các tính năng mới nhất, nhưng có các sửa lỗi nghiêm trọng luôn được đưa vào phiên bản chính.

III – Cài đặt Nginx

3.1. Cài bằng package từ OS Repository

  • Cài EPEL repository
 yum install -y epel-release
  • Update the repository:
 yum update
  • Install NGINX Open Source
yum install -y nginx
  • Kiểm tra lại version của nginx đã được cài đặt
  nginx -v

3.2. Cài bằng package từ kho lưu trữ của NGINX Inc.’s

  • Cài đặt kho lưu trữ gói nginx. Sau đó, bạn có thể cài đặt và cập nhật nginx từ kho lưu trữ.
  yum install -y yum-utils
  • Để set up yum repository, tạo 1 file với tên /etc/yum.repos.d/nginx.repo và thêm vào file:
 [nginx-stable]   name=nginx stable repo     baseurl=http://nginx.org/packages/centos/$releasever/$basearch/   gpgcheck=1   enabled=1   gpgkey=https://nginx.org/keys/nginx_signing.key   module_hotfixes=true    [nginx-mainline]   name=nginx mainline repo     baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/   gpgcheck=1   enabled=0   gpgkey=https://nginx.org/keys/nginx_signing.key   module_hotfixes=true
  • Theo mặc định, kho lưu trữ sẽ sử dụng các nginx package ổn định. Nếu bạn muốn sử dụng mainline nginx packages, sử dụng câu lệnh sau:
yum-config-manager --enable nginx-mainline
  • Install nginx, chạy câu lệnh:
yum install -y nginx
  • Sau khi install xong, start và enable service nginx
systemctl start nginx systemctl enable nginx
  • Cấu hình firewall
 firewall-cmd --permanent --zone=public --add-service=http  firewall-cmd --permanent --zone=public --add-service=https  firewall-cmd --reload
  • Kiểm tra hoạt động của Nginx server bằng cách truy cập trên trình duyệt bằng địa chỉ IP của server: http://IP
  • Nếu thành công, màn hình sẽ hiển thị như hình:

3.3. Cài từ source code

  • Chỉnh sử file /etc/yum.repos.d/CentOS-AppStream.repo để tắt việc sử dụng repo mặc định của Centos 8 như sau:
#gpgcheck=1 enabled=0
  • Tải xuống source code từ trang web chính thức của NGINX sử dụng câu lệnh dnf, sau đó biên dịch các gói để cài đặt nó.
  dnf groupinstall " Development Tools"  -y
  • Cài đặt các package dưới đây để biên dịch NGINX từ source của nó
  dnf install zlib-devel pcre-devel openssl-devel -y
  • Cài đặt epel repository vào target system
  dnf install epel-release -y
  • Cài đặt các gói phụ thuộc bên dưới để NGINX có thể chạy trong target system
   dnf install perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel -y
  • Chỉnh sửa file /etc/yum.repos.d/CentOS-AppStream.repo để enable=1 và bỏ comment gpgcheck=1 để cài đặt wget
  • Tải xuống Nginx source code từ trang web chính thức của NGINX
   wget http://nginx.org/download/nginx-1.16.1.tar.gz
  • Giải nén gói đã tải xuống
 #tar -xzf nginx-1.16.1.tar.gz   #cd nginx-1.16.1   #ll   total 752   drwxr-xr-x. 6 1001 1001   4096 Dec 17 11:02 auto   -rw-r--r--. 1 1001 1001 296463 Aug 13 19:51 CHANGES   -rw-r--r--. 1 1001 1001 452171 Aug 13 19:51 CHANGES.ru   drwxr-xr-x. 2 1001 1001    168 Dec 17 11:02 conf   -rwxr-xr-x. 1 1001 1001   2502 Aug 13 19:51 configure   drwxr-xr-x. 4 1001 1001     72 Dec 17 11:02 contrib   drwxr-xr-x. 2 1001 1001     40 Dec 17 11:02 html   -rw-r--r--. 1 1001 1001   1397 Aug 13 19:51 LICENSE   drwxr-xr-x. 2 1001 1001     21 Dec 17 11:02 man   -rw-r--r--. 1 1001 1001     49 Aug 13 19:51 README   drwxr-xr-x. 9 1001 1001     91 Dec 17 11:02 src
  • Để định cấu hình quy trình cài đặt Nginx, chạy câu lệnh ./configure với các tùy chọn. Để xem các tùy chọn, thực hiện câu lệnh
 pwd /root/nginx-1.16.1   ./configure --help

Bạn cũng có thể cài đặt cấu hình mặc định bằng cách chạy câu lệnh ./configure mà không sử dụng thêm tùy chọn nào.

  • Chạy configure script command dưới
  ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx

Nếu gặp lỗi như ở dưới

checking for OS + Linux 4.18.0-80.el8.x86_64 x86_64 checking for C compiler ... not found  ./configure: error: C compiler cc is not found

FIX

Cài đặt gcc bằng câu lệnh:

  dnf install gcc -y

Sau khi cài đặt, bạn có thể xác minh lại như dưới đây.

# gcc gcc: fatal error: no input files compilation terminated.

Bây giờ bạn có thể thực hiện lại câu lệnh phía trên và tiếp tục thực hiện các câu lệnh dưới đây:

  • Thực thi lệnh make cho tiến trình cấu hình
  #make
  • Cài đặt NGINX cùng với câu lệnh make như sau:
  make install
  • Kiểm tra version của nginx
 nginx -v nginx version: nginx/1.16.1
  • Tạo user cho Nginx và đặt quyền sở hữu thích hợp cho thư mục cài đặt Nginx bằng cách chạy lệnh sau.
useradd nginx   chown -R nginx:nginx /etc/nginx/
  • Định cấu hình service daemon cho Nginx bằng cách sử dụng trình chỉnh sửa vim chỉnh sửa nội dung file /usr/lib/systemd/system/nginx.service và nhập nội dung sau vào tệp. Lưu và thoát tệp.
vim /usr/lib/systemd/system/nginx.service   [Unit]   Description=nginx - high performance web server   Documentation=https://nginx.org/en/docs/   After=network-online.target remote-fs.target nss-lookup.target   Wants=network-online.target    [Service]   Type=forking   PIDFile=/var/run/nginx.pid   ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/conf/nginx.conf   ExecStart=/usr/sbin/nginx -c /etc/nginx/conf/nginx.conf   ExecReload=/bin/kill -s HUP $MAINPID   ExecStop=/bin/kill -s TERM $MAINPID    [Install]   WantedBy=multi-user.target
  • Start và enable Nginx service
systemctl start nginx   systemctl enable nginx
  • Stop firewalld
  systemctl stop firewalld
  • Kiểm tra bằng cách nhập địa chỉ IP của server cài Nginx lên trình duyệt. Kết quả sẽ như trong hình dưới

Bây giờ bạn đã sẵn sàng để bắt đầu triển khai các ứng dụng của mình và sử dụng Nginx làm máy chủ web hoặc proxy.

Chúc bạn thành công!

Bài viết liên quan

Tìm hiểu về tệp tin cấu hình của Nginx

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Hướng dẫn gỡ bỏ plesk linux How to uninstall Plesk for Linux !

To remove Plesk from CentOS/RHEL-based distributions, follow these steps: Connect to a Plesk server via SSH. Run the following...
29/07/2021

CentOS How to Install RPM

Whenever you’re running a Linux distro, it’s always a challenge to find all your necessary tools directly in the default...
29/12/2020

Performance Testing [Phần 5] Hướng dẫn sử dụng Gatling Report

Một trong nhưng ưu điểm của Gatling khi đánh giá với các công cụ benchmark web khác là khả năng...
30/12/2020