一简介
Nginx可以用作web服务器来提供静态内容的服务,也可以作为负载均衡器来分配传入的请求到多个后端服务器。
二.区别
1.Nginx作为Web服务器
Nginx配置文件中的server块可以定义用于提供静态内容的根目录(root)和索引文件(index)。
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
2.Nginx作为负载均衡器
Nginx 既可以作为 7 层(应用层)负载均衡器,也可以作为 4 层(网络层)负载均衡器。
7层负载均衡
在Nginx中,可以使用upstream块定义一个服务器组,并在server块中使用proxy_pass指令将请求转发到这个组。
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend;
}
}
在以上配置中,Nginx接收到的请求会被均衡地分配到backend1.example.com和backend2.example.com两个后端服务器。
4层负载均衡
# 4层负载均衡 - 基于端口
stream {
upstream backend {
server srv.example.com:22;
}
server {
listen 12345;
proxy_pass backend;
}
在以上配置中,Nginx将进入端口 12345 的 TCP 流量转发到srv.example.com的端口。
三.总结
Nginx作为Web服务器与负载均衡器的主要区别在于是否使用了代理传递机制。前者直接处理请求并提供静态内容,而后者将请求转发给其他服务处理。