Cấu hình NGINX, nguyên lý hoạt động

 03/12/2019 08:43:00

NGINX là gì?

NGINX, “engine-ex,”  là một phần mềm web server mã nguồn mở. Khi mới đi hoạt động, NGINX dùng để hỗ trợ web HTTP. Nhưng ngày này nó phổ biến được dùng làm reverse proxy, HTTP load balancer và email proxy như IMAP, POP3, và SMTP.

Định nghĩa một cách đơn giản hơn thì các bạn cứ hiểu đây là một web server mạnh mẽ, sử dụng kiến trúc đơn luồng, hướng sự kiện mang lại hiệu quả cao hơn Apache server. NGINX cũng đóng vai trò quan trọng khác như load balancing, HTTP caching, hay sử dụng như một reverse proxy.

Khả năng xử lý dữ liệu mạnh mẽ của NGINX

Khả năng xử lý dữ liệu mạnh mẽ của NGINX

NGINX chính thức đi vào hoạt động từ 10/2014. Igor Sysoev là người sáng lập. Dự án được triển khải từ năm 2002 để giải quyết vấn đề C10k (C10k là giới hạn của việc xử lý 10 ngàn kết nối cùng lúc). Bây giờ vẫn còn nhiều kết nối hơn vậy để xử lý. NGINX sử dụng kiến trúc hướng sự kiện không đồng bộ nên giúp nó trở thành server đáng tin cậy, tốc độ và khả năng mở rộng lớn nhất.

Nhờ khả năng xử lý mạnh mẽ, có thể xử hàng ngàn kết nối cùng lúc mà nó trở nên rất thích hợp cho những website traffic lớn. Những ông lớn công nghệ ngày nay đều sử dụng NGINX ví dụ như Netflix, Google, Adobe, Wordpress, Cloudflare,…  

Cài đặt NGINX trên Windows

Bkhost giới thiệu 2 cách cài đặt NGINX. Cách đầu nhanh và dễ hơn, nhưng cần cài từ source cung cấp khả năng cài đặt thêm cho module để giúp NGINX mạnh hơn. Bạn có thể tùy chỉnh sao để phù hợp với nhu cầu sử dụng.

Để cài đặt một gói Debian dựng sẵn, thứ duy nhất cần làm là:

      Sudo apt-get update

      Sudo apt-get install nginx

Sau khi quá trình cài đặt kết thúc, bạn có thể kiểm tra mọi thứ có tốt không khi chạy lệnh dưới đây, để hiển thị thông tin bản NGINX được cài đặt  là ỔN bằng cách chạy lệnh dưới đây, nó sẽ hiển thị phiên bản NGINX được cài đặt:

      Sudo nginx –v

      Nginx version: nginx/1.6.2

Webserver mới sẽ được cài đặt tại /etc/nginx/. Tệp tin nginx.conf và thư mục sites-available là những yếu tố chính mà bạn cần đẻ mắt tới.

Cấu hình NGINX

Danh sách file, giải nghĩa thư mục quan trọng

  • /etc/nginx/conf.d: Thư mục chứa file config riêng của bạn.
  • /etc/nginx/nginx.conf: File config chính
  • /etc/nginx/sites-available/default: File config Virtual Hosts mặc định
  • /etc/nginx/sites-available: Khu vực chứac file config VirtualHost cho phép bạn cấu hình riêng cho từng web.

Cách thức hoạt động NGINX

Cách thức hoạt động NGINX

Cấu hình Virtual Hosts

Tạo file Virtual Hosts cho tên miền ở đường dẫn /etc/nginx/sites-available/example.com.conf với nội dung:

server {

            listen 80;

            listen [::]:80;

            server_name example.com;

            root /var/www/example.com;

            index index.html;

            location / {

                         try_files $uri $uri/ =404;

           }

}

 

Lưu ý: bạn nhớ thay example.com thành địa chỉ tên miền của bạn.

Tạo file Virtual Host

Tạo file Virtual Host

Ý nghĩa của các tham số:

  • listen 80: Lắng nghe và nhận các kết nối trên cổng 80 (HTTP Port).
  • listen [::]:80: Lắng nghe và nhận các két nối trên địa chỉ Ipv6.
  • server_name: Địa chỉ tên miền
  • root: Đường dẫn thư mục chứa source code website
  • index: File gọi đến đầu tiên
  • location: Địa chỉ trả về tài nguyên trên máy chủ, khi có request tới 1 URL

Cấu hình Log

Log của Nginx được lưu ở trong thư mục /var/log/nginx gồm có 2 file là:

  • log: Lưu lại thông tin truy cập tới ở web server
  • log: Lưu lại thông tin lỗi

Tiến hành thay đường dẫn của 2 file đó, bạn sửa phần tham số error_log và access_log trong file /etc/nginx/nginx.conf:

http {

        ##

        # Logging Settings

        ##

        access_log /var/log/nginx/access.log;

        error_log /var/log/nginx/error.log;

}

Bạn cũng có thể thêm 2 tham số vào virtualhost, giúp đặt đường dẫn file log riêng ứng với từng web.  

Cấu hình gzip

Gzip là phương pháp nén dữ liệu trả về của server, giúp giảm tải thời gian tải tài nguyền từ server về người dùng.

Để bật gzip trên NGINX chúng ta sửa file config /etc/nginx/nginx.conf

http {       

            ##       

            # Gzip Settings       

            ##        

            gzip on;

            gzip_vary on;

            gzip_proxied any;

            gzip_comp_level 6;

            gzip_buffers 16 8k;

            gzip_http_version 1.1;

            gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

}

 

Bài viết trả lời cho câu hỏi NGINX là gì mà các bạn đang quan tâm, đồng thời Bkhost giới thiệu tới các bạn cách cài đặt NGINX trên Windows. Chúc các bạn thành công và hãy nhớ đón đọc các bài viết thông tin hữu ích khác trên blog của Bkhost nhé!