Hướng dẫn compile NGINX từ source code trên CentOS

Hướng dẫn chi tiết từng bước compile NGINX từ source code trên CentOS với bản Stable 1.12.x giúp bạn dễ dàng thực hiện.

Complie NGINX trên CentOS có tác dụng gì?

  • Để cài đặt thêm module NGINX, kích hoạt HTTP2
  • Để test sức mạnh của CPU: Khi order VPS/Server, bạn chỉ nhìn thấy những thông số chung chung như 1 vCore CPU, 2 vCore CPU và thậm chí nhiều nhà cung cấp còn giấu không public xung nhịp của CPU, bao nhiêu GHz? Thậm chí khi đã nắm được đầy đủ thông tin, bạn vẫn không thể biết được sức mạnh thực sự của nó như thế nào vì mỗi nhà cung cấp sẽ config VPS chỉ được sử dụng tối đa bao nhiêu % của 1 CPU vật lý mà thôi. Vì vậy, chúng ta chỉ có thể biết được chính xác khả năng tính toán của CPU bằng cách trực tiếp đo thời gian thực hiện những tác vụ nặng, ví dụ như compile NGINX.

Compile NGINX từ source code

Hướng dẫn với bản Stable 1.12.x (cụ thể là 1.12.2). Khi có bản mới hơn các bạn chỉ cần thay version number vào là xong.

  • Trước khi bắt đầu, update hệ thống
sudo yum check-update || sudo yum update -y
  • Cài đặt các thành phần bắt buộc
sudo yum install gcc-c++ perl pcre-devel zlib-devel epel-release -y
  • Tải NGINX và thư viện OpenSSL
cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.0.tar.gz && tar -xzvf nginx-1.14.0.tar.gz
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz && tar -xzvf openssl-1.1.0h.tar.gz
rm -rf *.tar.gz
  • Cấu hình và Compile NGINX
cd nginx-1.12.2

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-openssl=/usr/local/src/openssl-1.1.0h

make

Chờ quá trình biên dịch xong, bạn sẽ có file NGINX ở đường dẫn objs/nginx

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