NGINX là một trong những phần mềm web server mã nguồn mở. Nó được ứng dụng trong web HTTP, reverse proxy, HTTP load balancer & email proxy. Nội dung bài viết này sẽ cung cấp các kiến thức và kỹ năng căn nguyên về NGINX config.
giới thiệu về NGINX
NGINX (đọc là “engine-ex”), là 1 server web hiệu quả. Nó phụ trách xử lý tải của các website lớn nhất bên trên internet. NGINX đặc trưng tốt trong việc cách xử lý đa dạng kết nối đồng thời. Ngoài ra, nó cũng nổi bật trong việc đáp ứng những nội dung tĩnh (static content).
lân cận nhiều người dùng đã nhận được thức được thời gian làm việc của NGINX, những newbie vẫn thường bị nhẫm lẫn trong công việc lạm dụng quá phần mềm này. Vì như thế, nội dung bài viết này sẽ tập trung vào kết cấu chủ yếu của file NGINX config. Cùng theo với này là một trong những nguyên lý cơ bản về phong thái thiết kế những file.
tìm hiểu về context NGINX config
chỉ dẫn sau đây sẽ bao gồm những cấu trúc chủ yếu được tìm ra trong file NGINX config chính. Vị trí của file này sẽ tùy vào cách người tiêu dùng thiết đặt phần mềm bên trên máy. Bình thường , nó sẽ nằm ở đường dẫn /etc/nginx/nginx.conf. Còn nếu không, thậm chí file này sẽ ở /usr/local/nginx/conf/nginx.conf hay /usr/local/etc/nginx/nginx.conf.
Về tổng quan, file config chính sẽ đc bố trí theo cấu tạo cây, định vị bởi các tập hợp hay dấu hoặc ( ). Trong thuật ngữ NGINX, bộ phận đc xác định bởi những dấu ngoặc có tên thường gọi là “context”. Những context này chứa thông báo cụ thể về cấu hình, được phân bổ theo từng loại cụ thể. Về cơ bản, bí quyết chia này cho ta một cấu tạo với tổ chức xuất sắc.
những context thậm chí được xếp phần trong nhau. Bởi vì thế NGINX hỗ trợ một cấp độ directive kế thừa. Theo phép tắc chung, giả dụ một directive có giá trị trong tương đối nhiều phạm vi được lồng vào nhau, một khai báo trong context lớn hơn sẽ được truyền vào bất kỳ context con nào dưới dạng lạnh trị mặc định. Các context con sẽ ghi đè các lạnh lẽo trị này theo ý thích. Phải hãy nhớ là, ghi đè vào bất kỳ directive mẫu mảng nào sẽ thay thế sửa chữa rét trị trước đó, chứ không thêm vào nó.
các directive chỉ đc sử dụng quá trong những context được thiết kế theo phong cách cho nó. NGINX sẽ báo lỗi khi đọc một file config mang những directive đc khai báo trong một context ko đúng đắn. Để tham khảo, tài liệu của NGINX mang chứa thông tin về những context tương ứng có mỗi directive.
>>> Xem thêm: mua maychu dell t340
những Context chính trong NGINX config
trong Group trước nhất, ta sẽ tìm hiểu về các context cốt lõi của NGINX. Nó dùng làm kiến tạo kết cấu cây phân cấp (hierarchical tree) và phân tách những mặt của block config rời rạc. Chính những context này sẽ bao gồm các cấu tạo chính của NGINX config.
Main Context (Global Context)
Context tổng quát nhất của NGINX config chính là main context. Đó là context duy nhất không nằm trong các khối context nổi bật sở hữu dạng:
# The main context is here, outside any other contexts
. . .
context
. . .
nginx
bất kỳ directive nào xuất hiện bên ngoài các khối này sẽ được nghĩ rằng “main” context. Bắt buộc nhớ rằng, trường hợp NGINX config được thông số kỹ thuật theo kiểu module, một số file sẽ chứa các lệnh xuất hiện bên ngoài context. Nhưng nó sẽ đc chứa trong số context khi config đc kết nối lại sở hữu nhau.
Main context bộc lộ một môi trường xung quanh mênh mông nhất giành riêng cho NGINX config. Nó được sử dụng để thông số kỹ thuật các chi tiết ảnh hưởng tới toàn cục ứng dụng ở cấp độ chủ yếu. Khi những directive trong phần này tác động các context ở cấp độ thấp hơn, 1 trong số chúng sẽ không đc kế thừa. Sở dĩ vì các directive này không thể bị ghi đè ở những tầng phải chăng hơn.
một trong những chi tiết thịnh hành được cấu hình trong main context là người tiêu dùng và nhóm để chạy worker processess. Như số lượng worker, file để lưu PID của main process, CPU worker. File error_log mặc định của toàn thể phần mềm mà thậm chí đc thiết đặt ở cấp độ này (nó cũng có thể bị ghi đè ở các context cụ thể khác).
sự kiện Context
sự kiện Context là 1 trong context đc chứa phía bên trong main context. Nó dùng để đặt các tùy sắm ở mức độ blogal, ảnh hưởng đến bí quyết NGINX cách xử trí những kết nối ở cấp độ chung. Trong NGINX config, chỉ có một sự kiện context duy nhất đc xác định.
event context ở trong file config sẽ sở hữu được dạng sau:
# main context
events
# events context
. . .
nginx
NGINX sử dụng quá loại hình xử lý kết nối dựa trên những event. Do đó, các directive được định vị trong context này sẽ xác định phương pháp worker processes ở trên xử lý những kết nối. Chủ yếu, những directive đc tìm thấy ở trên đây được lạm dụng quá để tìm ra khoa học cách xử trí kết nối để lạm dụng. Hoặc là sửa đổi phương pháp các phương pháp đc tiến hành.
thông thường, phương pháp xử trí kết nối được chọn auto, dựa theo sự chọn lọc tối ưu mà căn nguyên sở hữu sẵn. So với các khối hệ thống của Linux, sự chọn lựa tối ưu thường là epoll.
những mục khác có thể được cấu hình là số lượng kết nối mỗi worker có thể cách xử trí. Hay quyết định mỗi worker chỉ đảm nhận 1 kết nối hay tất cả kết nối đang chờ cùng lúc. &Amp; ra quyết định xem những worker có thay phiên nhau respond các sự kiện không.
>>> Xem thêm: mua server dell t140
HTTP Context
lúc thông số kỹ thuật NGINX như một web server hay một reverse proxy, http context sẽ chiếm đa phần thông số kỹ thuật. Context này sẽ chứa mọi directive cũng giống như các context cần thiết khác để định vị bí quyết các chương trình cách xử lý kết nối HTTP hay HTTPS.
HTTP context thực tế tương đương sở hữu event context, phải chúng sẽ được liệt kê cạnh nhau, thay vì lồng vào nhau. Cả hai đều là context con của main context:
# main context
events
# events context
. . .
http
# http context
. . .
nginx
những context rẻ hơn sẽ cụ thể hơn về cách xử trí request. Nhưng các directive ở cấp độ này sẽ kiểm soát mặc định cho mỗi máy chủ ảo được định vị trong nó. Một lượng lớn những directive thậm chí được thông số kỹ thuật theo context này và những context tốt hơn. Việc này tùy thuộc phương pháp người dùng định vị quyền thừa kế.
một số trong những directive thường xuyên gặp phải khống chế location mặc định cho các truy cập và nhật ký lỗi (access_log và error_log). Nó cũng cấu hình I/O không đồng điệu cho những hoạt động của file (aio, sendfile, directio). Cấu hình trạng thái server khi xảy ra lỗi (error_page). một số trong những directive khác thông số kỹ thuật nén (gzip, gzip_disable), fine-tune setup keep alive TCP (keepalive_disable, keepalive_requests, keepalive_timeout). Hoặc thông số kỹ thuật các nguyên tắc mà NGINX sẽ đi theo để tối ưu hóa những packet và system call (sendfile, tcp_nodelay, tcp_nopush). các directive bổ sung cập nhật thông số kỹ thuật root các tài liệu tầng ứng dụng & index file (root, index). Nó cũng thiết đặt các hash table dùng để chứa nhiều hình thức hung tàn liệu khác nhau (*_hash_bucket_size và *_hash_max_size cho server_names, types, variables).
Server Context
Server Context đc khai báo trong http context. Phía trên cũng là một ví dụ về những context lồng nhau. Server context cũng là context trước hết cho phép khai báo nhiều đợt.
Định dạng chung của server context sở hữu dạng như sau:
# main context
http
# http context
server
# first server context
server
# second server context
nginx
Trong context này, mỗi tình huống sẽ định vị một virtual server chi tiết để xử lý yêu cầu của client. Do đấy, server context chất nhận được khai báo nhiều đợt. Ta mà thậm chí mang bao nhiêu server block tùy ý. Mỗi block có thể giải pháp xử lý một subnet chi tiết.
>>> Xem thêm: bán server dell t30
© Copyright 2011-2013 iSoftco®, All rights reserved Văn phòng công ty: P.16/706, Tòa nhà Thành Công, 57 Láng Hạ, phường Thành Công, quận Ba Đình, Hà Nội Tel: (84-4) 37 875018;(84-4) 3555 8604 | Fax: (84-4) 37 875017 | E-Mail: cho24h@isoftco.com |