Nginx反向代理、负载均衡、高可用、双主模式

一·首先安装好nginx环境

反向代理实例
Nginx配置实例-反向代理实例1***********************

1、实现效果:使用nginx反向代理,访问www.123.com 直接跳转到127.0.0.1:8080
实验代码启动一个tomcat,浏览器地址栏输入127.0.0.1:8080,出现如下界面,

2、准备工作
在linux系统安装tomcat,使用默认端口8080
tomcat安装文件放到linux系统中,解压,
进入tomcat的bin目录中,启动tomcat服务器

3、在windows系统中通过浏览器访问tomcat服务器(注意全部试验IP要换成你自己的IP地址)
http://192.168.0.107:8080
在这里插入图片描述
图解分析如下
在这里插入图片描述

4、具体配置
第一步 在windows系统中host文件进行域名和ip对应关系的配置
C:\Windows\System32\drivers\etc 下的hosts记事本或是notepad++打开
在这里插入图片描述
在末行添加如下内容,

192.168.0.107 www.123.com

在这里插入图片描述
Ctrl+s保存退出

此时浏览器也能访问检测是否成功,但要的最终的访问方式直接用域名www.123.com来访问,不需要8080端口
在这里插入图片描述
第二部 在nginx进行请求转发的配置(反向代理配置)
在这里插入图片描述
更改完毕配置文件命令行检测文件是否正常
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

正常重新加载nginx配置文件使之更改生效
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -s reload
5、最终测试
在这里插入图片描述

Nginx配置实例-反向代理实例2***********************
1、实现效果使用nginx反向代理,根据访问的路径跳转到不同端口的服务中nginx监听端口为9001,

访问http://192.168.0.107:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://192.168.0.107:9001/vod/ 直接跳转到127.0.0.1:8081
2、准备工作
(1).准备两个tomcat服务器,一个8080端口,一个8081端口
(2).创建文件夹和测试页面

[root@rhel71 src]#cd /usr/src/
[root@rhel71 src]# mkdir -p /usr/src/{tomcat8080,tomct8081}
分别报tomcat安装包放到tomcat8080,tomct8081各自目录下
a1.首先在tomcat8080目录下安装8080端口的tomcat步骤如下
[root@rhel71 ~]# cd /usr/src/tomcat8080
[root@rhel71 tomcat8080]# tar -xf apache-tomcat-7.0.70.tar.gz
[root@rhel71 tomcat8080]# cd /usr/src/apache-tomcat-7.0.70/bin/
[root@rhel71 bin]# ./startup.sh
a2.安装在tomcat8081目录下安装并更改tomcat端口为8081
[root@rhel71 ~]# cd /usr/src/tomcat8081/
[root@rhel71 tomcat8081]# tar -xf apache-tomcat-7.0.70.tar.gz
下面更改端口为8081步骤
[root@rhel71 conf]# cd /usr/src/tomcat8081/apache-tomcat-7.0.70/conf
[root@rhel71 conf]# pwd
/usr/src/tomcat8081/apache-tomcat-7.0.70/conf
[root@rhel71 conf]# vim server.xml
要更改的端口我在这里简单过滤出来
在这里插入图片描述
切换到tomcat8081下启动tomcat8081的服务
[root@rhel71 bin]# pwd
/usr/src/tomcat8081/apache-tomcat-7.0.70/bin
[root@rhel71 bin]# ./startup.sh
浏览器上检测访问两个端口
在这里插入图片描述
在这里插入图片描述
接下来分别在tomcat8080的webapps的目录下创建edu目录,并在目录下创建测试页面文件a.html具体步骤内容如下
[root@rhel71 ~]# cd /usr/src/tomcat8080/apache-tomcat-7.0.70/webapps/
[root@rhel71 webapps]# pwd
/usr/src/tomcat8080/apache-tomcat-7.0.70/webapps
[root@rhel71 webapps]# mkdir -p /usr/src/tomcat8080/apache-tomcat-7.0.70/webapps/edu/
[root@rhel71 webapps]# cd edu/
[root@rhel71 edu]# vim a.html

<h1>8080how time flies!</h1>

浏览器
在这里插入图片描述
接下来在tomcat8081的webapps的目录下创建vod目录,并在目录下创建测试页面文件a.html具体步骤内容如下
[root@rhel71 ~]# cd /usr/src/tomcat8081/apache-tomcat-7.0.70/webapps/
[root@rhel71 webapps]# pwd
/usr/src/tomcat8081/apache-tomcat-7.0.70/webapps
[root@rhel71 webapps]# mkdir -p /usr/src/tomcat8081/apache-tomcat-7.0.70/webapps/vod/
[root@rhel71 webapps]# cd vod/
[root@rhel71 vod]# vim a.html

<h1>8081!!</h1>

浏览器
在这里插入图片描述
3、具体配置
(1)找到nginx配置文件,进行反向代理配置

 server {
        listen       9001;
        server_name  192.168.0.107;

        location ~ /edu/ {
            proxy_pass http://127.0.0.1:8080;
            
        }
		
		location ~ /vod/ {
            proxy_pass http://127.0.0.1:8081;
            
        }
			
}

更改完毕配置文件命令行检测文件是否正常
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

正常重新加载nginx配置文件使之更改生效
[root@rhel71 conf]# /usr/local/nginx/sbin/nginx -s reload
4、最终测试
在这里插入图片描述

在这里插入图片描述

网Nginx配置实例-负载均衡***********************
在这里插入图片描述
1、实现效果
(1)浏览器地址栏输入地址http://192.168.0.107/edu/a.html,负载均衡效果,平均8080和8081端口中
2、准备工作
(1)准备两台tomcat服务器,一台8080,一台8081
(2)在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试
3、在nginx的配置文件中进行负载均衡的配置

#在http模块里面添加 在#gzip on;下面添加

upstream myserver {
		server 192.168.0.107:8080;
		server 192.168.0.107:8081;
	}
 
server {
        listen       80;
        server_name  192.168.0.107;

        location / {
            proxy_pass http://myserver;
            
        } 

4.最终测试
浏览器输入http://192.168.0.107/edu/a.html 之后按住F5不断刷新自动跳转分配均衡到其它页面
在这里插入图片描述
在这里插入图片描述
4、nginx分配服务器策略******

第一种轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

第二种weight
weight代表权重默认为1,权重越高被分配的客户端越多。

第三种ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。

第四种fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
在这里插入图片描述

Nginx配置实例-动静分离*****************
在这里插入图片描述

 server {
        listen       80;
        server_name  192.168.0.107;

        location /www/ {
            root /data/;
            #/data/是自己在/创建的之后分别创建www、image目录,
            #一一对应a.html、BlueSky.jpg用于页面测试.
        }
		
		location /image/ {
            root /data/;
            autoindex on;
        }
			
}

4.最终测试
(1)浏览器中输入地址
http://192.168.0.107/image/BlueSky.jpg
http://192.168.0.107/www/a.html
在这里插入图片描述在这里插入图片描述在这里插入图片描述
Nginx 配置高可用集群********************************
Keepalived+nginx高可用
在这里插入图片描述在这里插入图片描述
2、配置高可用的准备工作
(1)需要两台服务器192.168.17.129 和192.168.17.131
(2)在两台服务器安装nginx
(3)在两台服务器安装keepalived

3、在两台服务器安装keepalived
(1)使用yum命令进行安装yum install keepalived –y
(2)安装之后,在etc里面生成目录keepalived,有文件keepalived.conf

4、完成高可用配置(主从配置)
(1)修改/etc/keepalived/keepalivec.conf配置文件

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}

	notification_email_from Alexandre.Cassen@firewall.loc
	smtp_server 192.168.17.129  
	smtp_connect_timeout 30
	router_id LVS_DEVEL

}

vrrp_script chk_http_port {
script “/usr/local/src/nginx_check.sh”
interval 2 #(检测脚本执行的间隔)
weight 2
}

vrrp_instance VI_1 {
state BACKUP # 备份服务器上将MASTER 改为BACKUP
interface ens33 //网卡
virtual_router_id 51 # 主、备机的virtual_router_id必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1

authentication {
auth_type PASS
auth_pass 1111
}

virtual_ipaddress {
	192.168.17.50 // VRRP H虚拟地址
	}

}

global_defs {
	notification_email {
		acassen@firewall.loc
		failover@firewall.loc
		sysadmin@firewall.loc
		}
		
		notification_email_from Alexandre.Cassen@firewall.loc
		smtp_server 192.168.17.129
		smtp_connect_timeout 30
		router_id LVS_DEVEL
}

vrrp_script chk_http_port {
	script "/usr/local/src/nginx_check.sh"
	interval 2            #(检测脚本执行的间隔)
	weight 2
}

vrrp_instance VI_1 {
	state BACKUP      # 备份服务器上将MASTER 改为BACKUP   
	interface ens33    //网卡
	virtual_router_id 51      # 主、备机的virtual_router_id必须相同
	priority 90          # 主、备机取不同的优先级,主机值较大,备份机值较小
	advert_int 1
	
	
authentication {
	auth_type PASS
	auth_pass 1111
	}
	
	virtual_ipaddress {
		192.168.17.50 // VRRP H虚拟地址
		}
}

5.最终测试
浏览器访问虚拟vip
在这里插入图片描述
把主服务器192.168.17.129的nginx和keepalived停掉,再输入192.168.0.50浏览器访问不断按F5刷新
在这里插入图片描述
此时vip会切换到从服务器里
在这里插入图片描述###############################################################################
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值