一、Nginx介紹
Nginx是一個高性能的Web服務器,也可以用作反向代理,負載均衡,郵件代理和HTTP緩存。它是由俄羅斯的程序設計師Igor Sysoev所開發,其第一個公開版本發佈於2004年。Nginx是一個開源軟件,目前已經成為一個非常流行的Web服務器,排名第三,僅次於Apache和Microsoft IIS。
二、Nginx優點
與Apache相比,Nginx的資源佔用更少,處理請求更快,能夠更好地處理高並發量,並提供更好的性能和負載均衡。
另一個Nginx的優點是可擴展性,因此它被用於大型的高負載量的Web站點。Nginx使用異步非阻塞I/O模型,可以管理大規模並發的連接,而不會消耗太多的系統資源。
除了性能,Nginx還有其它有用的特性:
- 可以用作HTTP服務器和反向代理服務器
- 可以進行負載均衡控制
- 提供高度可定製性
- 支持SSL和TLS加密
- 支持FastCGI
- 支持HTTP/2
三、Nginx安裝和基本配置
以下是在CentOS上安裝Nginx的命令:
yum -y update
yum -y install nginx
Nginx的主要配置文件是/etc/nginx/nginx.conf。以下是一個基本的示例配置文件:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name example.com www.example.com;
root /usr/share/nginx/html;
index index.html;
}
}
在此Nginx配置中,Nginx已設置為監聽80端口,當收到一個請求時,將會使用server_name指定的域名/主機名進行處理,根目錄是默認的/usr/share/nginx/html。
四、Nginx反向代理和負載均衡
反向代理指的是服務器接收客戶端請求後,將請求轉發給另一台服務器,並將其響應返回給客戶端。
在Nginx中,如何配置反向代理?以下是一個基本的反向代理配置:
http {
upstream app {
server 1.1.1.1:8080;
server 1.1.1.2:8080;
server 1.1.1.3:8080;
}
server {
location / {
proxy_pass http://app;
}
}
}
上述配置將創建一個名為”app”的服務器池,該池包含三個後端服務器。當客戶端請求到達Nginx時,它將被轉發到該服務器池中的其中之一。
負載均衡是指在多台服務器之間分配負載,以便為多個用戶提供同樣的服務請求。在Nginx中,負載均衡可以通過各種算法來實現。
以下是一個load balancing的例子,將請求分發到三台服務器:
http {
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com;
server backend3.example.com;
server backup1.example.com backup;
}
server {
location / {
proxy_pass http://backend;
}
}
}
總結:反向代理和負載均衡是Nginx中最常見的兩個用例。Nginx的優越性能和可擴展性使其成為構建高性能Web服務器和應用程序負載均衡的理想選擇。它提供的功能使得Nginx成為管理流量的理想解決方案。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279248.html