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. Hướng dẫn cài đặt Nginx chi tiết trong bài viết sau.
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ỏ commentgpgcheck=1
để cài đặtwget
- 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
Hướng dẫn cài đặt Nginx. 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.