Nginx là một loại webserver, các webserver hàng đầu hiện nay như sau
Server | Nhà sản xuất | Thị phần |
---|---|---|
Apache | Apache | 34.5% |
nginx | NGINX, Inc. | 33.7% |
Cloudflare Server | Cloudflare, Inc. | 17.6% |
LiteSpeed Web Server | LiteSpeed Technologies | 8.0% |
IIS | Microsoft | 7.2% |
GWS | 1.2% | |
Node.js | OpenJS Foundation | 1.1% |
Về thị phần, nginx đứng top 2 và bám sát sao server của Apache.
Đặc điểm
- Là web server mã nguồn mỡ
- Kiến trúc đơn luồng hướng sự kiện
- Ngoài webserver nginx còn có thể đóng vai trò load balancing, http caching, hay reverse proxy.
Cài đặt
- Có 2 cách: sử dụng package có sẵn hoặc cài từ source
- Cài từ package nhanh hơn nhưng từ source dễ tùy biến hơn
Cài bằng package trên các OS khác nhau như sau:
Debian
sudo apt-get update sudo apt-get install nginx sudo nginx -v // => nginx version: nginx/1.18.2
MacOS
brew install nginx
Windows
Đối với Windows chỉ cần vào trang download của NGINX và tải về phiên bản mong muốn (thường là stable)
Cấu hình
Cấu hình ở trong file nginx.conf, mặc định có nội dung như sau: https://gist.github.com/nishantmodak/d08aae033775cb1a0f8a
Các thiết lập quan trọng
- worker_processes: định nghĩa số worker processes mà NGINX sẽ sử dụng. Bởi vì NGINX là đơn luồng nên nó thường bằng số lõi CPU
- worker_connection: số lượng tối đa của các kết nối đồng thời cho mỗi worker process, tức là cho biết các worker process của chúng ta có bao nhiêu người có thể được phục vụ đồng thời bởi NGINX.
- access_log & error_log: các tệp tin mà NGINX sử dụng để log lỗi và số lần truy cập.
- gzip: là các thiết lập nén GZIP của các NGINX response. Thiết lập nén quan trọng cần chú ý là gzip_comp_level là mức nén nằm trong khoảng 1 đến 10. Thường giá trị này không nên lớn hơn 6 vì sẽ không cải thiện nén nhiều trong khi tiêu tốn nhiều CPU.
NGINX có thể hỗ trợ cùng lúc nhiều website, các cấu hình định nghĩa cho các trang web nằm ở thư mục /etc/nginx/sites-available.
Khởi chạy
Debian
Đối với Debian, sau khi cấu hình xong chạy NGINX bằng lệnh sau:
sudo service nginx start
Mỗi lần thay đổi cấu hình có thể reload lại (zero downtime)
service nginx reload
Kiểm tra lại trạng thái của NGINX
service nginx status
MacOS
sudo brew services start nginx sudo brew services restart nginx
Windows
Với Windows, sau khi đã download NGINX về, giải nén và chạy, ví dụ:
cd c:\ unzip nginx-1.19.8.zip cd nginx-1.19.8 start nginx
Sau khi khởi động ta truy cập vào localhost sẽ thấy trang mặc định của NGINX như dưới đây
Chúc mừng, vậy là bạn đã chạy thành công NGINX server!