nginx配置案例(反向代理,负载均衡,动静分离以及高可用)

一、软件安装         

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
cd /usr/local
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
cd /usr/local/nginx
cd nginx-1.13.7
./configure
make && make install

二、配置案例

案例一:反向代理

反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址

实现效果:使用 nginx 反向代理,访问 www.haha.com 直接跳转到 127.0.0.1:8080

提前配置好两个tomcat

1.在windows的hosts文件中,设置域名和ip对应关系

2.设置代理

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

运行nginx

# cd /usr/local/nginx/sbin/
# ./nginx

3.测试

      浏览器输入域名查看结果为tomcat页面

案例二:基于不同的端口号

实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 9001

 访问 http://127.0.0.1:9001/web1 直接跳转到 127.0.0.1:8080

 访问 http://127.0.0.1:9001/web2 直接跳转到 127.0.0.1:8082

1.准备两个 tomcat,一个 8080端口,一个 8082端口,并准备好测试的页面

# cd /usr/local/
# mkdir tomcat8080
# mkdir tomcat8082       // 然后拖入tomcat进行解压安装
# cd /usr/local/tomcat8080/apache-tomcat-7.0.70/conf/
# vim server.xml        // 修改tomcat的端口号

启动tomcat

# cd ../bin/
# ./startup.sh

启动后浏览器输入      http://192.168.60.131:8080/           http://192.168.60.131:8082    测试成功访问

创建测试目录及页面

# cd ../webapps/
# mkdir web1
# echo "web1's port is 8080" > web1/web1.html

 2.修改 nginx 的配置文件 在 http 块中添加 server{}

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

3.关闭重启nginx,测试

案例三:负载均衡

实现效果 :浏览器地址栏输入地址 http://192.168.60.131/web/web.html,负载均衡效果,平均 8080 和 8081 端口中

1.准备两台 tomcat 服务器,一台 8080,一台 8081,在两台 tomcat 里面 webapps/web 目录中放入测试页面

    # echo "web is 8080" > webapps/web/web.html

2.在 nginx 的配置文件中进行负载均衡的配置

    # cd /usr/local/nginx/conf/

    # vim nginx.conf

http块中添加负载均衡

server中添加代理

3.关闭重启nginx,测试是否负载均衡

案例四:动静分离 

把动态页面和静态页面由不同的服务器来解析

1.准备工作

    静态页面

# mkdir /data/{www,image} -p
# echo "www test" > /data/www/index.html         // 写测试页面传入图片

2.修改配置

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

3.启动nginx,测试

浏览器查看静态资源  http://192.168.60.131/image/ ,也可以后面加上照片名称直达目的

                                  http://192.168.60.131/www/index.html

案例五:高可用

 准备:需要两台服务器均安装 nginx,keepalived

二、完成高可用配置(主从配置)

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.60.131
		smtp_connect_timeout 30 
		router_id LVS_DEVEL        // 可能需要在hosts文件中写映射关系
} 
  
vrrp_script chk_http_port {   
	script "/usr/local/src/nginx_check.sh" 
	interval 2      #(检测脚本执行的间隔) 
	weight 2 
} 
  
vrrp_instance VI_1 {
	state  MASTER    # 备份服务器上将 MASTER 改为 BACKUP
	interface eno16777736  //网卡
	virtual_router_id 51   # 主、备机的 virtual_router_id 必须相同
	priority 100     # 主、备机取不同的优先级,主机值较大,备份机值较小 
	advert_int 1 
	authentication {             // 校验权限
	        auth_type PASS 
	        auth_pass 1111 
	    } 
	virtual_ipaddress {
		192.168.60.100 // VRRP H 虚拟地址 
	} 
} 

2.在/usr/local/src 添加检测脚本

#!/bin/bash 
A=`ps -C nginx –no-header |wc -l` 
if [ $A -eq 0 ];then     
	/usr/local/nginx/sbin/nginx     
	sleep 2     
	if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then         
		killall keepalived     
	fi 
fi 

3.把两台服务器上 nginx 和 keepalived 启动

     启动 nginx:./nginx

     启动 keepalived:systemctl start keepalived.service

4.测试

     http://192.168.60.100/       访问虚拟地址,停掉主的服务,查看是否会切换至备份,在未切换备份服务器前查看备份服务器的ip是没有虚拟ip的,当主服务器down掉后,就会出现虚拟ip,主服务器恢复后,虚拟ip又会消失

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值