Nginx系列-负载均衡

Nginx是高性能的Web服务器,同时也支持负载均衡(反向代理)

 

支持的负载均衡方式
1. Tcp层负载均衡,支持:http、mysql、redis、mongo等,不支持动静分离
2. Http层负载均衡,默认编译就支持http负载均衡,支持动静分离

 

Nginx TCP层负载均衡(反向代理)

需要--with-stream模块才能支持Tcp负载均衡

 

Tcp层负载均衡配置在stream里

upstream中配置真实服务器的IP+端口

upstream中如果有多台,默认使用轮循算法

 

worker_processes 1;
events {
worker_connections 1024;
}
stream {
log_format basic '$remote_addr [$time_local]'
'$protocol $status $bytes_sent $bytes_received '
'$session_time $upstream_addr';
access_log logs/tcp.log basic;
upstream web{
server 192.168.237.51:80;
server 192.168.237.51:81;
}
server {
listen 88;
proxy_pass web;
}
}

 

Http层的负载均衡配置在http层里面
upstream中配置真实服务器的IP+端口
配置多个默认会使用轮循算法转发

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

log_format  main  '$remote_addr  $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer"  '
                      '$request_time $upstream_response_time $upstream_addr'
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;


   upstream web{
server 192.168.30.11:80;
server 192.168.30.11:81;
}
server {
listen 88;
location / {
proxy_pass http://web;
}
}
        }

 

 反向代理,后端只有一台,就不需要upstream了

server {
listen 88;
location / {
proxy_pass http://192.168.30.11:81;
}
}

 

Nginx常用的负载均衡算法
1. 加权轮循
2. ip_hash,根据访问的IP来决定分配到哪台服务器
3. 最小连接数

1. 加权轮循 
upstream web{ server
192.168.30.11:80 weight=3; server 192.168.30.11:81 weight=1; }

 

 

2.ip_hash
  upstream web{
ip_hash; server
192.168.30.11:80 ; server 192.168.30.11:81 ; }

 

3. 最小连接数
upstream web{
least_conn;
server 192.168.30.11:80 weight=3;
server 192.168.30.11:81 weight=1;
}

 

posted @ 2020-08-04 16:50  冬城暖阳  阅读(61)  评论(0编辑  收藏  举报