NGINX là gì? Giới thiệu tổng quan về Máy Chủ Web NGINX

Lượt xem
Home

NGINX – Phần mềm mã nguồn mở đa năng dành cho web server, reverse proxy, caching, load balancing và media streaming. Với hiệu suất và ổn định cao, NGINX là công cụ quan trọng trong ngành công nghệ thông tin. Cùng Vietnix khám phá NGINX là gì và mọi thông tin hữu ích về NGINX ngay trong bài viết sau.

NGINX là gì? 

NGINX – Web server mạnh mẽ mã nguồn mở, với kiến trúc đơn luồng và hướng sự kiện, vượt trội so với Apache server về hiệu suất. Ngoài việc làm web server nhanh nhất, NGINX còn cung cấp các chức năng quan trọng như load balancing, HTTP caching và reverse proxy. Đây là kiến thức không thể thiếu đối với web developer, system administrator và devops. Với sự xuất sắc và ưu việt trong đo lường hiệu suất, NGINX là lựa chọn hàng đầu cho các dự án web, mang lại sự tăng cường và đáng tin cậy cho hệ thống.

Nginx là gì?
Nginx là gì?

Kể từ khi phát hành ban đầu NGINX, các trang web đã mở rộng từ các trang HTML đơn giản sang nội dung động, nhiều mặt. NGINX đã phát triển cùng với nó và hiện hỗ trợ tất cả các thành phần của Web hiện đại, bao gồm WebSocket, HTTP / 2 và phát trực tuyến nhiều định dạng video (HDS, HLS, RTMP và các định dạng khác).

Lịch sử hình thành

Ban đầu, Igor Sysoev đã viết NGINX để giải quyết vấn đề C10K. Một thuật ngữ được đặt ra vào năm 1999. Để mô tả những khó khăn mà các máy chủ web hiện tại gặp phải khi xử lý số lượng lớn (10K) kết nối đồng thời (C). Với kiến ​​trúc event-driven, asynchronous, NGINX đã cách mạng hóa cách các máy chủ hoạt động trong bối cảnh hiệu suất cao. Và trở thành máy chủ web nhanh nhất hiện có.

nginx la gi 01

Sau khi mở nguồn cung ứng  dự án vào năm 2004. Và nhận thấy ​​việc sử dụng nó tăng theo cấp số nhân. Sysoev đồng sáng lập NGINX, Inc. để hỗ trợ tiếp tục phát triển NGINX. Và tiếp thị NGINX Plus như một sản phẩm thương mại với các tính năng bổ sung được thiết kế cho khách hàng doanh nghiệp. Ngày nay, NGINX và NGINX Plus có thể xử lý hàng trăm ngàn kết nối đồng thời. Vào tháng 7 năm 2011, công ty Nginx Inc ra đời tại San Francisco, California, Hoa Kỳ. Đây là bước quan trọng trong việc phát triển và quảng bá sự phổ biến của NGINX trên toàn cầu.

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

NGINX hoạt động theo kiến trúc bất đồng bộ và hướng sự kiện, khác biệt với các web server truyền thống. Thay vì tạo thread cho mỗi yêu cầu, NGINX quản lý worker connections trong một tiến trình gọi là worker process. 

NGINX hoạt động như thế nào?
NGINX hoạt động như thế nào?

Nhờ cách tiếp cận này, NGINX có thể xử lý hàng ngàn yêu cầu đồng thời mà không gặp vấn đề. Điều này làm cho NGINX trở nên hiệu quả đặc biệt trong lĩnh vực thương mại điện tử, công cụ tìm kiếm và lưu trữ đám mây. Sự mạnh mẽ và hiệu quả này đã khẳng định vị thế của NGINX trong ngành công nghệ thông tin.

Nginx có tính năng gì?

Những tính năng nổi bật của máy chủ HTTP Nginx

  • Khả năng xử lý lớn với hơn 10.000 kết nối cùng một thời điểm với bộ nhớ thấp.
  • Phục vụ cho các tập tin tĩnh (static files) và thực hiện lập chỉ mục tập tin.
  • Gia tăng tốc độ reverse proxy thông qua bộ nhớ đệm (cache).
  • Cân bằng quá trình tải đơn giản cùng khả năng chịu lỗi.
  • Giúp nâng cao tốc độ cùng bộ nhớ đệm của FastCGI, uwsgi, SCGI, và loạt máy chủ memcached.
  • Hỗ trợ Kiến trúc modular, nâng cao tốc độ nạp trang thông qua nén gzip tự động.
  • Giúp mã hoá SSL cùng TLS.
  • Cấu hình rất linh hoạt; sao lưu nhật ký truy vấn.
  • NGINX có tính năng chuyển hướng lỗi 3XX-5XX
  • Rewrite URL (URL rewriting) sử dụng regular expressions.
  • Làm giảm tỷ lệ đáp ứng truy vấn.
  • Kiểm soát các kết nối cùng một thời điểm và những truy vấn cùng 1 địa chỉ.
  • Có khả năng nhúng mã PERL.
  • Được hỗ trợ và tương thích trên IPv6.
  • Được hỗ trợ ở WebSockets.
  • Khả năng truyền tải file FLV và MP4.

Những tính năng tiêu biểu của máy chủ mail proxy của Nginx

Gồm các phương pháp xác thực như sau:

  • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
  • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
  • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
  • Hỗ trợ SSL, STARTTLS cùng STLS.

Ưu nhược điểm của Nginx

Ưu điểm

Nginx trở nên phổ biến và được áp dụng rộng rãi ngày càng nhiều, nhờ vào những ưu điểm sau đây:

  • Cung cấp hiệu suất ứng dụng cao bằng cách sử dụng cơ chế bộ nhớ đệm mạnh mẽ, giúp tăng cường hiệu suất khi người dùng truy cập cùng một địa chỉ trong khoảng thời gian ngắn.
  • Là web server nhẹ và có khả năng chuyển tiếp hiệu quả các yêu cầu người dùng đến máy chủ ứng dụng.
  • Quy tắc ghi lại linh hoạt của Nginx cung cấp sự linh hoạt khi cấu hình chuyển hướng vĩnh viễn hoặc tạm thời cho một số URL.
  • Nginx dễ dàng tuỳ chỉnh và triển khai qua giao thức HTTPS.
Ưu điểm của Nginx
Ưu điểm của Nginx

Nhược điểm

Bên cạnh những ưu điểm đáng chú ý đã nêu trên, Nginx cũng mang theo một số nhược điểm như sau:

  • Cân bằng tải có giới hạn hơn so với một số máy chủ khác.
  • Cơ chế lưu trữ cần được cải thiện thông qua việc cung cấp các lệnh mạnh mẽ hơn.
  • Việc điều hướng giữa trang chủ của Nginx và bộ phận hỗ trợ khách hàng đôi khi gặp khó khăn.

So sánh sự khác biệt giữa Server với NGINX

Phương thức kết nối được xử lý giữa NGINX server và Apache server chính là sự khác biệt cơ bản nhất của chúng. 

  • Hệ điều hành hỗ trợ: Tương thích là một yếu tố quan trọng khi lựa chọn phần mềm. Cả NGINX và Apache đều có khả năng chạy trên nhiều hệ điều hành Unix khác nhau. Tuy nhiên, đáng tiếc là hiệu suất của NGINX trên Windows không đạt được sự hiệu quả như trên các nền tảng khác.
  • Hỗ trợ người dùng: Cả người mới và chuyên gia đều cần một cộng đồng đáng tin cậy để giải quyết vấn đề. NGINX và Apache cung cấp hỗ trợ qua hệ thống mailing và diễn đàn Stack Overflow. Tuy nhiên, Apache thiếu sự hỗ trợ chính thức từ Apache Foundation, tổ chức điều hành nó, điều này có thể tạo ra sự khác biệt quan trọng trong việc đảm bảo một cộng đồng sẵn lòng hỗ trợ người dùng.
  • Hiệu năng: NGINX vượt trội với khả năng xử lý đồng thời 1000 kết nối tới nội dung tĩnh nhanh hơn gấp đôi so với Apache, đồng thời tiêu thụ ít bộ nhớ hơn. Trên nội dung động, cả hai nền tảng có tốc độ tương đương. Tuy nhiên, với những trang web tĩnh phong phú, NGINX là sự lựa chọn tuyệt vời hơn.
So sánh NGINX và Apache
So sánh NGINX và Apache

Apache và Nginx có cơ chế xử lý kết nối khác nhau. Apache sử dụng phân luồng hoặc keep-alive, trong khi Nginx sử dụng vòng lặp sự kiện không bị ngăn chặn và tiến trình công việc. Điều này giúp Nginx tránh sự cố về CPURAM khi có nhiều truy cập cùng lúc. Ngoài ra, NGINX còn có tốc độ xử lý nhanh hơn, hiệu suất sử dụng bộ nhớ tốt hơn và tiêu thụ ít tài nguyên RAM và CPU. Điều này làm cho NGINX trở thành lựa chọn hàng đầu cho việc xử lý lượng truy cập lớn và đáng tin cậy.

Hướng dẫn cài đặt NGINX

Để cài đặt NGINX, bạn có thể sử dụng 2 cách như sau:

  • Dùng gói (package) dựng sẵn.
  • Cài đặt từ source.

Cách đầu tiên được nhận xét là đơn giản và nhanh chóng hơn, nhưng cài đặt từ source sẽ mang đến khả năng cài đặt thêm các module khác làm cho NGINX trở nên vượt trội hơn. Người dùng được phép tùy chỉnh sao cho phù hợp với nhu cầu của ứng dụng.

Thao tác duy nhất bạn cần thực hiện để cài đặt một gói Debian dựng sẵn là:

sudo apt-get update
sudo apt-get install nginx

Sau khi hoàn thành quá trình cài đặt, bạn có thể kiểm tra tất cả đã ổn hay chưa thông qua lệnh sau, sẽ hiển thị phiên bản NGINX vừa được cài đặt:

sudo nginx -v
nginx version: nginx/1.18.2

Web Server mới được cài đặt ở /etc/nginx/. Khi bạn truy cập vào thư mục này, sẽ có nhiều tệp tin cùng thư mục xuất hiện. Tuy nhiên, thứ bạn cần lưu ý nhất đó chính là tệp tin nginx.conf và thư mục sites-available.

Cấu hình NGINX chi tiết

Dưới đây là thiết lập cần được chú ý tại tập tin nginx.conf:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

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

    gzip on;
    gzip_disable "msie6";

    # 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/x-javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

Tệp tin sẽ được cấu trúc nên các ngữ cảnh. Thứ nhất là events, tiếp theo là http. Cấu trúc được nhận xét là rất có ích trong việc cấu hình, như từng ngữ cảnh sẽ được chèn trong ngữ cảnh khác. Ngoài ra, còn được thừa hưởng tất cả từ cha mẹ của chúng nhưng cũng được phép ghi đè lên chúng nếu cần thiết.

Ở tập tin này bạn có thể tùy chỉnh chúng theo nhu cầu, tuy nhin bạn cũng có thể tận dụng các thiết lập mặc định. Tập tin này có một số thành phần quan trọng như sau:

  • worker_processes: Đây là một thiết lập dùng để định nghĩa worker processes mà NGINX sẽ dùng. Do NGINX là đơn luồng (single threaded), nên nó thường bằng lượng lõi CPU.
  • worker_connection: Đây chính là lượng kết nối tối đa trong một thời điểm cho mỗi worker process và thông báo đến những worker process của chúng ta số lượng người có thể phục vụ cùng lúc bởi NGINX.
  • access_log & error_log: Đây là những tệp tin mà NGINX sẽ sử dụng để log bất kỳ lỗi và số lần truy cập. Các bản ghi này thường được sử dụng để gỡ lỗi hoặc sửa chữa.
  • gzip: Thành phần này là các thiết lập nén GZIP của các NGINX reponse. Tại đây có chứa nhiều thiết lập phụ, phần bị comment do mặc định làm cho hiệu suất gia tăng đáng kể. Tại những thiết lập phụ của GZIP, bạn cần lưu ý tới gzip_comp_level, đây chính là mức nén nằm ở khoảng từ 1 – 10. Hầu hết, giá trị này sẽ hiếm khi lớn hơn 6 — vì lợi ích sẽ không bao nhiêu nếu trên mức này, do nó cần dùng nhiều CPU hơn. gzip_types chính là một danh sách dạng response sẽ được nén.

Số lượng website được NGINX hỗ trợ có thể nhiều hơn 1, cùng những tệp tin định nghĩa các website của bạn nằm ở thư mục /etc/nginx/sites-available.

Lưu ý rằng, những tệp tin nằm ở thư mục này không “live” — bạn có thể có nhiều tệp tin định nghĩa các trang web ở đây, nhưng NGINX không tác động đến chúng cho đến khi được symlink (liên kết tượng trưng) tới thư mục /etc/nginx/sites-enabled (hoặc có thể sao chép chúng đến thư mục này, nhưng symlink chắc chắn rằng chỉ có một bản sao chép trên một tệp tin được theo dõi).

Nó mang đến cho bạn giải pháp nhanh nhất đưa các website online và offilne mà không phải tiến hành xóa bỏ tập tin nào — Đến lúc bạn hoàn tất chuẩn bị cho trang web, tạo symlink đến sites-enabled, sau đó khởi động lại NGINX.

Thư mục site-available sẽ chứa cấu hình cho các host ảo (virtual host). Tại đây, web server được phép cấu hình các website với các từng cấu hình khác nhau. Những website trong thư mục không live và và chỉ được đồng ý nếu chúng ta tạo một symlink đến thư mục sites-enabled.

Người dùng dược phép tạo một tệp tin mới hoặc tùy chỉnh một tệp tin mặc định cho ứng dụng. Dưới đây là một cấu hình thông thường:

upstream remoteApplicationServer {
    server 10.10.10.10;
}

upstream remoteAPIServer {
    server 20.20.20.20;
    server 20.20.20.21;
    server 20.20.20.22;
    server 20.20.20.23;
}


server {
    listen 80;
    server_name www.customapp.com customapp.com
    root /var/www/html;
    index index.html

        location / {
            alias /var/www/html/customapp/;
            try_files $uri $uri/ =404;
        }

        location /remoteapp {
            proxy_set_header   Host             $host:$server_port;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_pass http://remoteAPIServer/;
        }

        location /api/v1/ {
            proxy_pass https://remoteAPIServer/api/v1/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_redirect http:// https://;
        }
}

Tương tự nginx.conf, nó cũng dùng định nghĩa các ngữ cảnh lồng nhau (đồng thời mọi thứ cũng được lồng trong ngữ cảnh HTTP CỦA nginx.conf, do đó chúng thừa hưởng tất cả từ nó).

Ngữ cảnh server định nghĩa một server ảo dùng để xử lý hết các request do client yêu cầu. Sẽ có nhiều khối server, NGINX sẽ tiến hành lựa chọn trong số đó dựa theo những chỉ thị listen và server_name.

Ở mỗi khối server, chúng ta định nghĩa lượng lớn ngữ cảnh location sẽ được áp dụng để quyết định phương thức xử lý các request cho client. Theo đó, khi nhận được request, NGINX sẽ thử khớp URI tới tới những định nghĩa location và xử lý theo cách hợp lý nhất.

Trong ngữ cảnh location sẽ có nhiều chỉ thị quan trọng được dùng tới, ví dụ như:

  • try_files sẽ phục vụ các tệp tin tĩnh được tìm thấy ở thư mục được trỏ tới do chỉ thị gốc.
  • proxy_pass thực hiện mang request đến proxy server xác định.
  • rewrite thực hiện viết lại URI đến thông qua một regular expression để đạt được một khối location có thể xử lý nó.

Ngữ cảnh upstream định nghĩa một pool của những server cái NGINX sẽ ủy quyền những request tới. Sau khi hoàn tất việc tạo khối upstream và định nghĩa một server nằm trong nó chúng có thể xác thực nó thông qua tên nằm trong các khối location. Ngoài ra, một ngữ cảnh upstream có thể sẽ chứa nhiều server được gán tại đó bởi vì NGINX sẽ làm một vài load balancing khi ủy quyền cho các request tới.

Khởi động NGINX

Sau khi hoàn tất quá trình cấu hình và đưa ứng dụng website đến thư mục tương thích. Bạn đã có thể khởi động NGINX và bắt đầu sử dụng thông qua câu lệnh:

sudo service nginx start

Trong trường hợp, nếu bạn cần thay đổi cấu hình chỉ cần thực hiện quá trình tải lại (không có thời gian downtime) thông qua lệnh như sau: 

service nginx reload 

Kết thúc bằng việc kiểm tra trạng thái của NGINX theo cách thực hiện lệnh sau: 

service nginx status

NGINX phục vụ web

Mặc dù NGINX trở nên nổi tiếng là máy chủ web nhanh nhất, kiến ​​trúc cơ bản có thể mở rộng đã chứng minh lý tưởng cho nhiều tác vụ web ngoài việc phục vụ nội dung. Do có thể xử lý khối lượng kết nối lớn, NGINX thường được sử dụng làm reverse proxy và cân bằng tải để quản lý lưu lượng đến và phân phối đến các upstream server – mọi thứ từ máy chủ cơ sở dữ liệu đến dịch microservices.

nginx la gi 04

NGINX cũng thường được đặt giữa máy khách và máy chủ web thứ hai, để phục vụ như một SSL Terminator, TLS hoặc web accelerator. Hoạt động như một trung gian, NGINX xử lý hiệu quả các tác vụ có thể làm chậm máy chủ web của bạn, chẳng hạn như SSL/TLS negotiating hoặc nén và cache nội dung để cải thiện hiệu suất. Các trang web động, được xây dựng bằng cách sử dụng mọi thứ từ Node.js đến PHP, thường triển khai NGINX làm cache nội dung và reverse proxy để giảm tải cho các máy chủ ứng dụng và sử dụng phần cứng hiệu quả nhất .

NGINX và NGINX Plus có thể làm gì cho bạn?

NGINX Plus và NGINX đang là các giải pháp application delivery và cho thuê máy chủ web tốt nhất được sử dụng bởi các trang web có lưu lượng truy cập cao như Dropbox, Netflix và Zynga. Hơn 400 triệu trang web trên toàn thế giới dựa vào NGINX Plus và NGINX để cung cấp nội dung của họ một cách nhanh chóng, đáng tin cậy và an toàn.

  • NGINX làm cho bộ cân bằng tải phần cứng trở nên lỗi thời. Là một bộ cân bằng tải nguồn mở chỉ có phần mềm. NGINX ít tốn kém hơn và có thể dễ cấu hình hơn các bộ cân bằng tải phần cứng. Và được thiết kế cho các kiến ​​trúc đám mây hiện đại. NGINX Plus hỗ trợ cấu hình lại nhanh chóng và tích hợp với các công cụ DevOps hiện đại để giám sát dễ dàng hơn.
  • NGINX là một công cụ đa chức năng. Với NGINX, bạn có thể sử dụng cùng một công cụ như bộ cân bằng tải, reverse proxy, cache nội dung và máy chủ web. Giảm thiểu số lượng công cụ và cấu hình mà tổ chức của bạn cần duy trì. NGINX cung cấp các hướng dẫn, hội thảo trên web và một loạt các tài liệu để giúp bạn vững bước. NGINX Plus bao gồm hỗ trợ khách hàng phản ứng nhanh. Do đó bạn có thể dễ dàng nhận trợ giúp chẩn đoán bất kỳ phần nào trong ngăn xếp của bạn sử dụng NGINX hoặc NGINX Plus.
NGINX Plus
NGINX Plus

Sử dụng nginx thế nào cho hiệu quả?

Bằng cách hiểu rõ khả năng mạnh mẽ của Nginx, bạn có thể tùy chỉnh nó sao cho phù hợp với dự án của mình. Hãy khám phá một số cách tuyệt vời để tận dụng tối đa sức mạnh của Nginx:

Loại bỏ các limitation ở tầng kernel

Để tận dụng tối đa Nginx, chúng ta có thể điều chỉnh một số giới hạn ở tầng kernel. Dưới đây là các thiết lập quan trọng trong tệp /etc/sysctl.conf:

  • 1. net.core.somaxconn: Tăng số kết nối tối đa mà Nginx có thể xếp hàng trước khi xử lý.
  • 2. net.ipv4.iplocalportrange: Tăng phạm vi cổng tạm thời để tránh chặn khi có nhiều yêu cầu truy cập.
  • 3. sys.fs.filemax: Tăng số file descriptor tối đa để Nginx có thể mở nhiều kết nối hơn.
  • 4. net.ipv4.tcpwmem và net.ipv4.tcprmem: Tăng kích thước đệm cho giao thức TCP/IP.

Các thiết lập này giúp tăng hiệu suất và đảm bảo hệ thống hoạt động mượt mà hơn.

Dưới đây là bộ config được recommend cho nginx server:

net.ipv4.ip_local_port_range='1024 65000'
net.ipv4.tcp_tw_reuse='1'
net.ipv4.tcp_fin_timeout='15'
net.core.netdev_max_backlog='4096'
net.core.rmem_max='16777216'
net.core.somaxconn='4096'
net.core.wmem_max='16777216'
net.ipv4.tcp_max_syn_backlog='20480'
net.ipv4.tcp_max_tw_buckets='400000'
net.ipv4.tcp_no_metrics_save='1'
net.ipv4.tcp_rmem='4096 87380 16777216'
net.ipv4.tcp_syn_retries='2'
net.ipv4.tcp_synack_retries='2'
net.ipv4.tcp_wmem='4096 65536 16777216'
vm.min_free_kbytes='65536'

Phân tích log nginx để tìm bottle neck

Phân tích access log từ nginx sẽ giúp bạn biết bottle neck ở đâu, bằng cách sử dụng tool Kataribe.

Để sử dụng tool này thì bạn cần setting nginx log format sử dụng directive:

log_format with_time '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $request_time';
access_log /var/log/nginx/access.log with_time;

Caching with nginx

Khi sử dụng Nginx để phục vụ tệp tĩnh, việc cấu hình cache và nén là rất quan trọng. Sử dụng nén gzip giúp giảm cost liên quan đến IO và băng thông. Đồng thời, thiết lập cache control giúp server không yêu cầu lại tệp tĩnh cho đến khi cache hết hạn. Dưới đây là một số thiết lập bạn có thể tham khảo

http {
gzip on;
gzip_http_version 1.0;
gzip_types text/plain
text/html
text/xml
text/css
application/xml
application/xhtml+xml
application/rss+xml
application/atom_xml
application/javascript
application/x-javascript
application/x-httpd-php;
gzip_disable "MSIE [1-6].";
gzip_disable "Mozilla/4";
gzip_comp_level 1;
gzip_proxied any;
gzip_vary on;
gzip_buffers 4 8k;
gzip_min_length 1100;
}

Hãy tận dụng sự dư thừa bộ nhớ của bạn khi sử dụng Nginx như một reverse proxy. Nếu lượng dữ liệu phản hồi không lớn, bạn có thể thiết lập Nginx để lưu trữ bộ nhớ cache thay vì lưu trữ trên đĩa. Điều này giúp tăng cường hiệu suất và tăng trải nghiệm người dùng khi truy cập vào các dữ liệu phản hồi:

proxy_cache_path /dev/shm/nginx levels=1:2 keys_zone=czone:16m max_size=32m inactive=10m;

Advance nginx

Một cài đặt quan trọng là “keepalive” trong HTTP, giúp giữ kết nối TCP sau khi phiên kết nối HTTP kết thúc. Điều này cho phép tái sử dụng kết nối cho các yêu cầu tiếp theo. Kỹ thuật này đặc biệt hữu ích khi người dùng gửi nhiều yêu cầu để tải các tài nguyên tĩnh, giảm thời gian thiết lập kết nối và tăng hiệu suất truy cập cho người dùng. Sử dụng keepalive trên nginx rất đơn giản bằng cách thêm directive keepalive vào trong upstream section:

upstream app {
server 127.0.0.1:5000;
keepalive 16;
}

Câu hỏi thường gặp

Upstream NGINX  là gì?

Trong NGINX, upstream là một nhóm các máy chủ web hoặc ứng dụng web mà NGINX có thể chuyển tiếp các yêu cầu đến. Upstream được sử dụng để cân bằng tải giữa các máy chủ web hoặc ứng dụng web, giúp cải thiện hiệu suất và khả năng mở rộng của hệ thống.

NGINX reverse proxy là gì?

NGINX reverse proxy là một tính năng của phần mềm web server NGINX, cho phép nó hoạt động như một bộ trung gian giữa người dùng và các máy chủ web thực tế. Nó nhận yêu cầu từ người dùng, xác định máy chủ web nào phù hợp để xử lý yêu cầu đó, và sau đó chuyển tiếp yêu cầu đến máy chủ đó.

Web server là gì?

Web server là một máy tính hoặc phần mềm xử lý các yêu cầu từ các trình duyệt web và trả về các trang web. Web server nhận yêu cầu từ trình duyệt web thông qua giao thức HTTP. Yêu cầu này bao gồm URL của trang web mà người dùng đang cố truy cập. Web server sau đó tìm kiếm trang web đó trên ổ đĩa của nó và trả về trang web đó cho trình duyệt web.

Lỗi NGINX là gì?

Lỗi NGINX là một lỗi xảy ra khi NGINX – một web server mã nguồn mở, không thể xử lý yêu cầu của người dùng. Lỗi này có thể do nhiều nguyên nhân, bao gồm:
– Lỗi cấu hình: Lỗi cấu hình là nguyên nhân phổ biến nhất của lỗi NGINX. Nếu cấu hình NGINX không chính xác, NGINX có thể không thể tìm thấy tài nguyên cần thiết để xử lý yêu cầu.
– Lỗi phần mềm: Lỗi phần mềm là một nguyên nhân khác của lỗi NGINX. Nếu có lỗi trong mã NGINX, NGINX có thể gặp sự cố khi xử lý yêu cầu.
– Lỗi phần cứng: Lỗi phần cứng cũng có thể gây ra lỗi NGINX. Nếu có vấn đề với phần cứng của máy chủ, NGINX có thể không thể xử lý yêu cầu.

Lời kết

Vietnix hy vọng qua bài viết trên có thể giúp bạn hiểu rõ NGINX là gì và vận dụng NGINX vào các dự án một cách tốt nhất. Chúc bạn thành công!

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (70 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận