graph LR
ngx_upstream["ngx_upstream"]
ngx_http_module["ngx_http_module"]
ngx_stream_module["ngx_stream_module"]
ngx_connection["ngx_connection"]
ngx_http_module -- "forwards requests to" --> ngx_upstream
ngx_stream_module -- "forwards stream data to" --> ngx_upstream
ngx_upstream -- "returns responses to" --> ngx_http_module
ngx_upstream -- "returns responses to" --> ngx_stream_module
ngx_upstream -- "utilizes" --> ngx_connection
ngx_connection -- "provides network I/O for" --> ngx_upstream
Abstract architectural components of Nginx.
The core component responsible for managing communication with backend servers (upstreams). It handles load balancing algorithms, performs health checks on upstream servers, and manages connection pooling to optimize resource usage. It acts as the central orchestrator for routing requests to appropriate backend services.
Related Classes/Methods: None
Handles HTTP-specific proxying logic. It receives incoming HTTP requests, processes them, and forwards them to ngx_upstream for routing to backend HTTP servers. It also receives responses from ngx_upstream and sends them back to the client.
Related Classes/Methods: None
Manages TCP/UDP stream proxying. Similar to the HTTP module, it handles raw stream data, passing it to ngx_upstream for routing to backend TCP/UDP services and receiving responses.
Related Classes/Methods: None
A foundational component responsible for managing individual network connections. It provides the low-level interface for reading from and writing to sockets, which ngx_upstream utilizes to establish and maintain connections with backend servers.
Related Classes/Methods: None