Nginx负载均衡基本使用

  • A+
所属分类:linux技术
摘要

到官网下载Nginx:http://nginx.org/en/download.html安装Nginx之前需要安装一些依赖右键复制链接,然后在centos中使用wget来下载,如果没有安装可以使用


Nginx负载均衡基本使用

安装Nginx

到官网下载Nginx:http://nginx.org/en/download.html

Nginx负载均衡基本使用

安装Nginx之前需要安装一些依赖

# gcc yum -y install gcc automake autoconf libtool make # g++ yum install gcc gcc-c++ # zlib,用于解压 yum install tar 

右键复制链接,然后在centos中使用wget来下载,如果没有安装可以使用

yum install wget 

命令来下载,下载完成以后使用

wget http://nginx.org/download/nginx-1.18.0.tar.gz 

即可下载下来

Nginx负载均衡基本使用

下载完成以后解压

mkdir nginx cd nginx tar -zxvf nginx-1.18.0.tar.gz 

进入解压好的文件中,使用命令编译和安装

make make install 

安装完成以后,检查防火墙和端口是否已经开启。如果是云服务器,还需要检查云服务安全组是否开启对应端口,80端口是一定要开启的。

检查防火墙是否开启

firewall-cmd --state 

开启防火墙

service firewalld start 

永久开启80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent 

重载防火墙,让设置生效

firewall-cmd --reload 

查看所有开启的端口

firewall-cmd --zone=public --list-ports 

配置负载均衡

方式一,nginx.conf配置文件中配置:

配置文件的目录在 /usr/local/nginx/conf下,nginx.conf便是配置文件,运行的目录是 /usr/local/nginx/sbin下,使用 sh 命令来运行。

配置负载均衡的几种方式,最好查看一下官方文档,官方文档正确率最接近100%---官方文档:https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/

# 运行Nginx sh /usr/local/nginx/sbin/nginx 

pwd可以查看当前所在路径

pwd 

关闭Nginx

sh /usr/local/nginx/sbin/nginx -s stop 

重启Nginx,不推荐使用,推荐停止再开启

sh /usr/local/nginx/sbin/nginx -s reload 

查看Nginx服务是否正在运行

ps aux | grep nginx 

使用vim编辑Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf 

在http下输入配置, 添加这个是使用ip_hash的机制来做为负载均衡的,默认为轮询方式。根据实际需要进行选择使用。

配置负载均衡的几种方式---官方文档:https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/

负载均衡方法 使用 作用
默认 设置多个上游服务器即可 不需要会话长连接和session的情况下,可以使用默认的,轮询可以平均分配请求到每个服务器
最少链接 minimum_conn; 哪台服务器连接最少就转发到活少的服务器上。
会话持久 ip_hash; 如果需要连接到服务器就不分配到别的服务器,可以使用ip_hash,ip_hash用ip地址来分配服务器,类似java中的hashcode作用
加权负载均衡 server [host] weight = 3 通过添加权重来设置,带权的服务器会分配到 权重/负载均衡服务器总数+权重 个请求
http{     ...     # 设置上游服务器,这里的myservive可以自定义名称,不能使用下划线"_",可以使用减号“-”     upstream myservice{         # 负载均衡策略    		ip_hash;    		    		# 例如 server www.baidu.com;    		# server www.baidu.com weight = 3; 设置权重,权重越大,越优先处理请求。    		# 可以指定转发的端口。    		# 如果转发的带有本机,推荐使用localhost,不经过网卡127.0.0.1在IPV6中是::1。    		server 服务1;    		server 服务2;    		server 服务n; 	} 	 	server{ 	    # 需要监听的当前服务器的端口, 	    listen 80; 	     	    # 需要监听的请求域名或者ip 	    server_name www.baidu.com; 	     	    # 负载均衡到上游服务器中 	    location / { 	     	        # 名称是上游服务器的配置名 	        proxy_pass http://myservice; 	    } 	} 	 	server{ 	    ... 	} } 

方式二,使用include引入外部文件:

可以使用引入文件的形式,不需要频繁修改主配置文件:

在 /usr/local/nginx/conf 文件夹下新建一个文件夹,如mytest

mkdir mytest cd mytest 

创建配置文件 myservice.conf

vim myservice.conf 

或者:

touch myservice.conf vim myservice.conf 

配置文件中输入:

upstream myservice{     # 负载均衡策略 	ip_hash;    		 	# 例如 server www.baidu.com;    	# server www.baidu.com weight = 3; 设置权重,权重越大,越优先处理请求。    	# 可以指定转发的端口,如 server www.baidu.com:8080 weight = 3;。    	# 如果转发的带有本机,推荐使用localhost,不经过网卡。    	# 127.0.0.1在IPV6中是::1。    	server 服务1;    	server 服务2;    	server 服务n; } 	 server{     # 需要监听的当前服务器的端口,     listen 80;          # 需要监听的请求域名或者ip     server_name www.baidu.com;          # 负载均衡到上游服务器中     location / {              # 名称是上游服务器的配置名         proxy_pass http://myservice;     } } 

在nginx.conf中引入该配置文件即可:

http{    ...        include mytest/myservice.conf;        server{       ...    }        ... } 

重启Nginx服务即可实现负载均衡

cd /usr/local/nginx/sbin sh nginx -s stop sh nginx 

配置80端口以后,直接访问Nginx所在的域名即可。

初学者难免会遇到错误,欢迎指正,欢迎留言