Nginx作为负载均衡服务

随着企业的业务增长,面对客户端海量的请求访问,对服务端造成大量的并发,服务的响应速度就会减慢。为了解决这个问题,企业往往会增加服务的数量,同时也会在前端设置一个负载均衡,来均分这些服务的请求,以提升服务的吞吐率和服务的性能。如果其中一个服务因为并发请求过高而无法继续提供服务,负载均衡就会剔除该服务,其他服务还是会正常运行。

服务端(IP:172.25.0.1

1、启动Nginx服务(先启动Nginx进程服务,否则后面重新载入Nginx服务时会报错)

systemctl start nginx

2、复制三份Nginx配置文件,分别命名为 server1.confserver2.confserver3.conf

cd /etc/nginx/conf.d/
#切换到Nginx默认配置文件目录

cp default.conf server1.conf
#复制一份配置文件,改名为server1.conf
 
cp default.conf server2.conf
#复制一份配置文件,改名为server2.conf

cp default.conf server3.conf
#复制一份配置文件,改名为server3.conf

3、修改server1.conf配置文件,将端口号改为8001,访问路径改为 /opt/server1

vim /etc/nginx/conf.d/server1.conf
server {
    listen       8001;     #修改端口号为8001
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /opt/server1;  #设置访问路径为/opt/server1
        index  index.html index.htm;
    }

   修改serve2.conf配置文件,将端口号改为8002,访问路径改为 /opt/server2

vim /etc/nginx/conf.d/server2.conf
server {
    listen       8002;        #设置监听端口为8002
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /opt/server2;      #设置访问路径为/opt/server2
        index  index.html index.htm;
    }

   修改server3.conf配置文件,将端口号改为8003,访问路径改为 /opt/server3

vim /etc/nginx/conf.d/server3.conf
server {
    listen       8003;      #设置监听端口为8003
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {  
        root   /opt/server3;      #设置访问路径为/opt/server3
        index  index.html index.htm;
    }

4、在三个访问路径下创建内容不同的HTML文件

mdkir /opt/server1   #在/opt目录下创建server1目录
vim /opt/server1/index.html
<html>
<head>
        <meta charset="utf-8">
        <title>server1</title>
</head>
<h1>8001端口</h1>
</body>
</html>
mdkir /opt/server2   #在/opt目录下创建server2目录
vim /opt/server2/index.html
<html>
<head>
        <meta charset="utf-8">
        <title>server2</title>
</head>
<h1>8002端口</h1>
</body>
</html>
mdkir /opt/server3   #在/opt目录下创建server3目录
vim /opt/server3/index.html
<html>
<head>
        <meta charset="utf-8">
        <title>server3</title>
</head>
<h1>8003端口</h1>
</body>
</html>

5、检查Nginx配置语法

nginx -tc /etc/nginx/nginx.conf 

6、重载入Nginx服务并且重新启动Nginx服务

nginx -s reload -c /etc/nginx/nginx.conf
#重新载入Nginx服务


systemctl restart nginx
#重新启动Nginx服务

7、检查对应的8001,8002,8003端口是否开启

ss -luntp | grep nginx         #查看Nginx服务的端口进程
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=2025,fd=6),("nginx",pid=2024,fd=6))
tcp    LISTEN     0      128       *:8001                  *:*                   users:(("nginx",pid=2025,fd=7),("nginx",pid=2024,fd=7))
tcp    LISTEN     0      128       *:8002                  *:*                   users:(("nginx",pid=2025,fd=8),("nginx",pid=2024,fd=8))
tcp    LISTEN     0      128       *:8003                  *:*                   users:(("nginx",pid=2025,fd=9),("nginx",pid=2024,fd=9))

上面看到服务已经开启,可以在浏览器端访问  172.25.0.1:8001(8002、8003)/index.conf 

负载均衡配置端(IP:172.25.0.5

1、启动Nginx进程服务

systemctl start nginx

2、修改Nginx配置文件

vim /etc/nginx/conf.d/default.conf
upstream vincen{               #负载均衡配置,名为vincen的服务池
	server 172.25.0.1:8001;
	server 172.25.0.1:8002;
	server 172.25.0.1:8003;
}

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
	proxy_pass http://vincen;     # 跳转配置,访问跳转到vincen的服务池里
	include proxy_params;         #常用的代理参数选项

    }
vim /etc/nginx/proxy_params  #将proxy_params存放在/etc/nginx目录下
proxy_redirect default;  
#跳转重定向配置
            
proxy_set_header Host $http_host;     
#添加host的头信息,并设置http_host变量

proxy_set_header X-Real-IP $remote_addr;   
#在前段将ip信息带到后端

proxy_connect_timeout 30;
#默认的请求超时配置,TCP请求超时30s

proxy_send_timeout 60;
#服务端请求完后,响应给客户端的时间

proxy_read_timeout 60;
#已经建立好连接的情况下,服务器接收请求后在处理请求的时间

proxy_buffer_size 32k;
#设置缓冲区的大小为32k 

proxy_buffering on;
#Nginx在缓冲区等待后端相应的信息再发送给前端

proxy_buffers 4 128k;
#设置缓冲区的数量以及总大小

proxy_busy_buffers_size 256k;
#设置缓冲区最大为256k

proxy_max_temp_file_size 256k;
#临时文件的最大为256k

 3、检查Nginx配置语法

nginx -tc /etc/nginx/nginx.conf 

4、重新载入Nginx服务

nginx -s reload -c /etc/nginx/nginx.conf 

5、在浏览器访问 172.25.0.5  就会出现刚刚访问172.25.0.1:8001(8002、8003)/index.conf一样的情况(这是访问本机服务器的时候跳转到那三个访问端口

这时候回到服务端的Linux中,使用iptables规则关掉Nginx的其中一个端口

iptables -I INPUT -p tcp --dport 8002 -j DROP

然后再在浏览器刷新,就不会在出现内容为“8002端口”的界面了

猜你喜欢

转载自blog.csdn.net/vincen123/article/details/83998221
今日推荐