展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

nginx使用

  • nginx配置文件:(使用yum安装,所以位置在/etc/nginx/nginx.conf )
包含三部分内容
(1)全局块:配置服务器整体运行的配置指令
比如 worker_processes 1;处理并发数的配置
(2)events 块:影响 Nginx 服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数为 1024
(3)http 块
还包含两部分:http 全局块、server 块
  • nginx 分配服务器策略
轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除
weight weight 代表权重默认为 1,权重越高被分配的客户端越多

ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器;也即是第一次使用该请求访问到8080端口的服务器,以后每次使用该请求都会访问到8080服务器

fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配;也即是哪个tomcat启动快就先访问哪个

  • 动静分离:nginx将动态请求转发到tomcat服务器,将静态请求转发到对应的静态资源
动静分离的实现:方式一将静态文件放在单独的域名;方式二将动态和静态文件混合一起发布
通过 location 指定不同的后缀名实现不同的请求转发;通过 expires 参数设置,可以使浏 览器缓存过期时间,减少与服务器之前的请求和流量

访问静态资源实现:
在Linux根目录下新建文件夹和html:/data/www/a.html
在Linux根目录下新建文件夹和图片:/data/image/01.jpg
修改nginx配置文件:开放的路径、转发方式

启动nginx测试:window浏览器输入:192.168.17.129/image/01.jpg  将会访问到图片
输入:192.168.17.129/image/  会显示图片的目录
输入:192.168.17.129/www/a.html  会显示html页面
  • nginx高可用
我们发送的请求通过nginx转发到不同的tomcat服务器,如果nginx服务器突然故障,我们切换到另一台linux的nginx服务器,需搭建nginx集群
同时需在Linux服务器上安装leepalived进行监听nginx是否正常运行,两台nginx服务器对外暴露一个虚拟ip

  • 具体步骤
# 需两台Linux服务器,都安装了nginx和keepalived

# 安装keepalived:
yum install keepalived -y
/etc/keepalived/keepalived.conf        # 配置文件
systemctl start keepalived.service         # 启动
ps -ef | grep keepalived        # 查看进程

# 第一台Linux中的nginx作为主服务器,修改第一台Linux中的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.17.129
 smtp_connect_timeout 30
 router_id LVS_DEVEL        # 当前Linux主机的名称,vi /etc/hosts添加一行127.0.0.1   LVS_DEVEL
}
vrrp_script chk_http_port {       # 检测脚本
 script "/usr/local/src/nginx_check.sh"     # 脚本的路径
 interval 2        # 检测脚本执行的间隔
 weight 2     # 权重
}
vrrp_instance VI_1 {       # 虚拟IP的配置
 state MASTER         # 备份服务器上将 MASTER 改为 BACKUP
 interface ens33         # 当前IP使用的网卡名称
 virtual_router_id 51      # 主、备机的 virtual_router_id 必须相同
 priority 100           # 主、备机取不同的优先级,主机值较大,备份机值较小
 advert_int 1
authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {
 192.168.17.50          # 两台nginx绑定的虚拟ip
 }
}

# 在/usr/local/src 添加检测脚本nginx_check.sh,用于检测nginx是否正常,如下:
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
 /usr/local/nginx/sbin/nginx     # nginx启动路径
 sleep 2
 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
 killall keepalived
 fi
fi

# 在另一台Linux中的nginx作为备用服务器,在这台Linux中的keepalived.conf中做同样的配置,虚拟IP位置稍作修改;nginx_check.sh一样

# 测试:启动两台服务器的nginx和keepalived,浏览器中输入虚拟ip访问到的主服务nginx,命令ip a可查看到虚拟ip绑定的是主服务器中的ip,停用主服务器的nginx和keepalived,
# 浏览器中输入虚拟ip访问的备用服务器的nginx,命令ip a可查看到虚拟ip绑定的是备用服务器中的ip
posted @ 2022-07-25 14:35  DogLeftover  阅读(38)  评论(0)    收藏  举报