- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
最近几年建站面板里宝塔面板属于顶尖了,可以一键配置很多中间件,其中就包括nginx。
这次我们就尝试用宝塔安装nginx来做个简单的负载均衡。
1.准备
两台以上服务器,我这里准备了四台
宝塔面板安装nginx1.16
2.Nginx负载均衡的集中方式介绍
2.1 轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。
upstream lunxun {
server 10.10.0.3;
server 10.10.0.4;
server 10.10.0.5;
}
2.2 权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。
upstream quanzhong {
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
}
2.3 iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream iphash {
ip_hash;
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
}
2.4 最少连接
将请求分配到连接数最少的服务上。
upstream least_conn {
least_conn;
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
}
2.5 fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream fair {
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
fair;
}
3.Nginx配置
3.1 nginx配置文件修改
以轮训为例,如下是nginx.conf完整代码。
把upstream写在http节点下
user www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
multi_accept on;
}
http
{
upstream lunxun {
server 10.10.0.3;
server 10.10.0.4;
server 10.10.0.5;
}
upstream quanzhong {
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
}
upstream iphash {
ip_hash;
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
}
upstream least_conn {
least_conn;
server 10.10.0.3 weight=1;
server 10.10.0.4 weight=2;
server 10.10.0.5 weight=3;
}
#fair需要ngnix安装upstr_fair
# upstream fair {
# server 10.10.0.3 weight=1;
# server 10.10.0.4 weight=2;
# server 10.10.0.5 weight=3;
# fair;
# }
include mime.types;
#include luawaf.conf;
include proxy.conf;
default_type application/octet-stream;
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server_tokens off;
access_log off;
server
{
listen 888;
server_name phpmyadmin;
index index.html index.htm index.php;
root /www/server/phpmyadmin;
#error_page 404 /404.html;
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log /www/wwwlogs/access.log;
}
include /www/server/panel/vhost/nginx/*.conf;
}
3.2 站点配置文件修改
在serveri节点下location的proxy_pass修改为http://www.landui.com_name ,如下
location / {
proxy_pass http://www.landui.com;
proxy_redirect default;
}
4.测试
重启nginx,第一次访问http://www.landui.com如图所示
这里我设置的是节点5权重较高,所以多次出现节点5的页面
再次访问如图所示
多次访问如图所示
如果要修改负载均衡算法修改站点配置文件中对应upstream模块即可。
售前咨询
售后咨询
备案咨询
二维码
TOP