nginx常用指令、方向代理、负载均衡、动静分离、高可用实例

常用命令

使用nginx操作命令前提条件:进入nginx目录中 usr/local/nginx/sbin

1.启动nginx
./nginx

2.关闭nginx
./nginx -s stop

3.重新加载nginx
./nginx -s reload
4.查看版本号
./nginx -v

linux开启防火墙端口指令
firewall-cmd --zone=public --add-port=8081/tcp --permanent
开放8081tcp端口
开放后需要重启防火墙 firewall-cmd --reload
查看端口:firewall-cmd --list-all

nginx配置文件

位置:在nginx/conf/nginx.conf
nginx配置文件中有三部分
1.全局快
从配置文件开始到events块之间的内容 主要会设置一些影响nginx服务器整体运行的配置指令
比如 worker processes 1:值越大 可以支持的并发处理量越多
2.events块
主要影响nginx和用户网络的连接
比如 worker connections 支持的最大连接数
3.http块
nginx服务器配置中最频繁的部分 代理 缓存和日志定义等绝大多数功能和第三方模块都在这里
http块包括http全局块和server块
3.1http全局块
http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
3.2server块
与虚拟主机有密切联系
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

反向代理实例

1.实例一

1.修改nginx.conf配置文件
server快中 server_name 改为IP地址 192.168.145.129
在这里插入图片描述
location中添加转发路径
在这里插入图片描述

2.实例二

使用nginx反向代理,根据访问的路径跳转到不同端口的服务中
nginx监听端口为9001
1.准备工作
准备两个tomcat 一个8080 一个8081
在usr/src 中创建两个文件夹:tomcat8080 tomcat8081 分别在两个文件夹中放入tomcat安装包 解压 并启动

进入tomcat8081中的conf中 修改server.xml配置:

8005改为8015:
在这里插入图片描述

8080改8081:
在这里插入图片描述
2.创建测试页面和文件夹
分别在两个文件夹中的webapps中创建edu文件夹和vod文件夹 edu、vod中放一个可以区别两个tomcat 的html页面
3.修改配置
在这里插入图片描述
监听端口号为9001
如果路径包含edu 到8080端口
如果路径包含vod 到8081端口

location指令说明:
该指令用于匹配url
在这里插入图片描述

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~
标识。

开放需要的端口 重启nginx
edu被转发到8080端口
在这里插入图片描述
vod被转发到8081端口
在这里插入图片描述

负载均衡实例

实现效果:
浏览器地址输入 192.168.145.130/edu/success.html 把请求平均分配到8080和8081

在两个tomcat的webapps中 创建edu文件夹
进行负载均衡配置
在nginx.conf中

在http块中添加upstream
在这里插入图片描述

修改location里的proxy_pass
在这里插入图片描述

重启nginx

第一次进入 8081
在这里插入图片描述
刷新 变成8080
在这里插入图片描述

负载均衡分配策略

1.轮询(默认)
按时间顺序平均分配到不同服务器 服务器宕机 会被自动剔除
2.weight
weight代表权重,默认为1,权重越高被分配的客户端越多,适用于服务器性能不均的情况
在这里插入图片描述
3.ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题
在这里插入图片描述
4.fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配
在这里插入图片描述

动静分离实例

1.准备工作
创建data目录 里面创建www image目录
在image里加入success.html image里加入p1.jpg
2.配置nginx

location后加 /www/ root后加/data/
在这里插入图片描述
同样添加另一个location autoindex on是开启目录浏览下载功能
在这里插入图片描述
输入image路径,会出现下载目录:
在这里插入图片描述
输入图片路径 直接访问图片
在这里插入图片描述

高可用实例

在这里插入图片描述
需要有两台nginx服务器来保证高可用 一台主服务器,一台备用服务器
1.准备工作
1.两台服务器
2.在两台服务器安装keepalived
yum install keepalived -y
2.开始配置(修改keepalived配置文件)
配置文件位置:/etc/keepalived/keepalived.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.145.130
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2	#(检测脚本执行的间隔)			
	weight 2		
	}		

vrrp_instance VI_1 {
    state MASTER                         #备份服务器改为BACKUP
    interface ens33                       #网卡
    virtual_router_id 51    #主备机必须相同
    priority 100                    #  主从机采取不同优先级 主机大 备机小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.145.50                     
    }
}




配置详解:
router_id LVS_DEBELBACK #访问到主机 LVS_DEVELBACK是主机名字 在etc/host 中可以查看
vrrp_script chk_http_port 检测脚本配置
advert_int 1 心跳频率 每过一秒检测是否活着

从服务器基本一样 就是把state改成backup priprity改小
在两个服务器/usr/local/src/nginx_check.sh添加nginx_check.sh文件,内容:

#!/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

进入虚拟路径,出现nginx画面
在这里插入图片描述

在linux输入 ip a指令
在这里插入图片描述

此处说明已绑定到192.168.145.50

关闭主机的keepalived和nginx
再次进入192.168.145.50
在这里插入图片描述
仍然可以进入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值