Khi muốn cài đặt thêm module NGINX, kích hoạt HTTP2 bạn bắt buộc phải complie NGINX từ source code vì bản chúng ta thường cài qua lệnh yum sẽ không được tích hợp sẵn.
Ngoài ra, còn một tác dụng nữa không nhiều bạn biết đó là complie NGINX để 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 đủ info 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 mà mình sẽ giới thiệu dưới đây.
Mình sẽ hướng dẫn với bản Stable 1.12.x (mới nhất hiện nay là 1.12.2) mà HocVPS Script sử dụng. 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
Compile NGINX từ source code
1. 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
2. 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
3. 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
Tôi chỉ thích sử dụng Centos, với Nginx. Tôi thấy nó dễ dàng và mơ hồ hơn APACHE. Mỗi lần nginx đôi khi có các plugin không tốt cho hỗ trợ WordPress, bạn phải chỉnh sửa thủ công.
Mình đang dùng Nginx trên OS Rasbian làm webserver cho website https://sunrise-kids.edu.vn. Trộm vía thấy cũng khá ổn> Có lẽ vì website mình visit ít
Trước t chỉ cài ubuntu, sau vào canh me, rồi biết tới học VPS bây giờ chỉ thích xài thằng Cenos, với Nginx. Thấy đơn giản và đỡ nhì nhằng hơn là APACHE. Mỗi cái nhiều khi nginx thi thoảng có plugin viết cho WordPress hỗ trợ ko tốt thì lại phải mò chỉnh sửa bằng tay.
Cho mình hỏi chút là mình Compile NGINX theo như thế này là có thể thay thế luôn cái nginx đang sử dụng đúng ko vậy? Mình đang muốn cài NGINX1.16.1 với opeen ssl 1.1.1 tới đoạn make song chưa biết nên làm gì nữa.
Làm tới lần thứ 4 mới được, sai đường dẫn tứ tung luôn , thanks bạn về bài viết
Mình cũng thấy hơi khó hiểu :3
Mình nghỉ module GEOIP nên để ngầm định khi complied, rất tiện dụng
Các module trên HocVPS là từ mặc định của Nginx và việc rebuild Nginx rất đơn giản nên mình nghĩ để đơn giản nhất cho người dùng
Mình làm đc rồi, bài viết hữu ích. Cảm ơn tác giả nhiều!
Cám ơn tác giả. Nhưng chắc không có nhiều bạn phải complie lắm nhỉ vì thấy đa số dân VN mình xài ubuntu.
hình như bài viết này bị edit lại thấy thiêu thiếu đi nhiều thứ
Compile này để test sức mạnh VPS thôi bạn, không phải compile để thêm thắt gì hay để rebuild
Mình cũng thấy thế
Mình make thị bị báo thế này và ko biên dịch được make: *** [build] Error 2, mình dùng vps trên a2hósting ạ
Error 2 thì chung chung lắm. Bạn kiểm tra lại các yêu cầu và thực hiện lại nhé. Bao gồm yêu cầu về RAM tối thiểu trên 512 và các trình biên dịch. Bên cạnh đó, bài viết này hướng dẫn complie nginx để test hệ thống chứ không phải để cài đặt hay thêm package vào Nginx. Nên mục đích của bạn build lại Nginx kèm gì?
Mình làm được rồi, do sai đường dẫn =)) tks Phương
Cài đặt nginx làm sao để 2 domain cùng trỏ về 1 IP được vậy hả bác???
Nginx sẽ tự nhận theo server_name nhé bạn, nên bạn trỏ bao nhiêu domain về 1 IP thì Nginx đều nhận và phản hồi theo cấu hình của bạn
server_name A show root A
server_name B show root B
Bạn có thể nói chi tiết hơn được không?
Ví dụ cơ bản nhất
server {
listen 80 ;
server_name abc.net;
root /home/abc.net/public_html;}
server {
listen 80 ;
server_name xyz.net;
root /home/xyz.net/public_html;}
Cảm ơn bạn nhé!
Gói Cloud Compute 5$ của Vultr mình test compile NGINX mất khoảng 3ph29s
Như thế nào thì được coi là tốt có thang điểm test không bác.
Thang điểm thì mình nghĩ dựa vào một nhà cung cấp có tiếng, ví dụ Vultr để đánh giá so sánh là ổn