目录
一、Nginx负载均衡【重点】
1.1 轮询
1.2 权重
1.3 ip_hash
二、Nginx动静分离【重点】
2.1 动态资源代理
2.2 静态资源代理
官方文档 nginx
一、Nginx负载均衡【重点
】
Nginx为我们默认提供了三种负载均衡的策略:
轮询:将客户端发起的请求,平均的分配给每一台服务器。
权重:会将客户端的请求,根据服务器的权重值不同,分配不同的数量。
ip_hash:基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器上。
1.1 轮询
想实现Nginx轮询负载均衡机制只需要在配置文件中添加以下内容
upstream 名字 {server ip:port;server ip:port;...
}
server {listen 80;server_name localhost;location / {proxy_pass http://upstream的名字/;}
}
例如:http {include /etc/nginx/mime.types;default_type application/octet-stream;
upstream win {server ip:8080;server ip:8081;}
server {listen 80;server_name localhost;location / {proxy_pass http://win/;}.....略
1.2 权重
实现权重的方式
upstream 名字 {server ip:port weight=权重比例;server ip:port weight=权重比例;...
}
server {listen 80;server_name localhost;location / {proxy_pass http://upstream的名字/;}
}
例如:http {include /etc/nginx/mime.types;default_type application/octet-stream;
upstream win {server ip:8080 weight=3;server ip:8081 weight=7;}
server {listen 80;server_name localhost;location / {proxy_pass http://win/;}.....略
1.3 ip_hash
ip_hash实现
upstream 名字 {ip_hash;server ip:port;server ip:port;...
}
server {listen 80;server_name localhost;location / {proxy_pass http://upstream的名字/;}
}例如:http {include /etc/nginx/mime.types;default_type application/octet-stream;
upstream win {ip_hash;server ip:8080;server ip:8081;}
server {listen 80;server_name localhost;location / {proxy_pass http://win/;}.....略
二、Nginx动静分离【重点
】
什么是动态资源和静态资源?
动态资源:一般指后端资源
静态资源:一般指html,js,css,img,plugins
什么是动静分离?
将静态资源部署在nginx上,当接收到请求是访问静态资源时,直接在nginx配置的静态资源目录下面获取静态资源。如果是动态资源,利用nginx 反向代理原理,将请求转发给后台应用处理,这就是动静分离。
Nginx的并发能力公式:
worker_processes * worker_connections / 4 | 2 = Nginx最终的并发能力
动态资源需要/4,静态资源需要/2.
Nginx通过动静分离,来提升Nginx的并发能力,更快的给用户响应。
2.1 动态资源代理
使用proxy_pass动态代理
# 配置如下
location / {proxy_pass 路径;
}
2.2 静态资源代理
使用root静态代理
# 配置如下
location / {root 静态资源路径;index 默认访问路径下的什么资源;autoindex on; # 代表展示静态资源全的全部内容,以列表的形式展开。
}
# 先修改docker,添加一个数据卷,映射到Nginx服务器的一个目录
# 添加了index.html和1.jpg静态资源
# 修改配置文件
项目是nginx.conf 配置文件的编写方式.
worker_processes 1;
error_log /var/log/nginx/error.log warn;
# 以上统称为全局块,
# worker_processes他的数值越大,Nginx的并发能力就越强
# error_log 代表Nginx的错误日志存放的位置
events {worker_connections 1024;
}
# events块
# worker_connections他的数值越大,Nignx并发能力越强
http {include /etc/nginx/mime.types;default_type application/octet-stream;
upstream win {ip_hash;server ip:8080;server ip:8081;}
server {listen 80;server_name localhost;location / {root /html;index index.html index.htm;proxy_pass http://win/;}
location ~* \.(gif|jpg|png)$ {root /html/img;}
}
}