一、Nginx 反向代理实例 1
location = / {} //用于不含正则表达式url前,要求请求字符串与url严格匹配。
location ~ / {} //用于表示url含正则表达式,并且区分大小写
location ~* / {} //用于表示url含正则表达式,不区分大小写
location ^~ / {}用于不含正则表达式url前,要求nginx服务找到表示url和请求字符串匹配度最高的location后,立即使用此location处理请求,而不是使用location快中的正则url和请求字符串做匹配
在 nginx 进行请求转发的配置(反向代理配置)
二、Nginx 反向代理实例 2
找到 nginx 配置文件,进行反向代理配置
三、Nginx 配置实例-负载均衡
实现效果
浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均 8080
和 8081 端口中
在 nginx 的配置文件中进行负载均衡的配置
nginx 分配服务器策略
-
第一种 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 -
第二种 weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
-
第三种 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
-
第四种 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
四、Nginx 配置实例-动静分离
1.什么是动静分离
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和
静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx处理静态页面,Tomcat 处理动态页面。一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。
具体配置
重点是添加 location,
最后检查 Nginx 配置是否正确即可,然后测试动静分离是否成功,之需要删除后端 tomcat
服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源 nginx 直接返回
了,不走后端 tomcat 服务器
四-一高可用nginx配置
- 1.需要两天nginx服务器
- 2.两台服务器都安装keepalived
yum install keepalived -y
配置文件在/etc/keepalived/keepalived.conf
参考博客:https://www.cnblogs.com/mmdln/p/8988951.html
-3 修改/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 虚拟地址
}
}
- 4.在/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
- 5.把两台服务器上 nginx 和 和 keepalived 启动
- 启动 nginx :./nginx
- 启动 keepalived :systemctl start keepalived.service
- 6.测试
在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50
在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50
五、nginx原理
1.mater 和 worker
2.worker 如何进行工作的
3.一个 master 和多个 woker 有好处
(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作
(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,
继续进行争抢,实现请求过程,不会造成服务中断
4、设置多少个 woker 合适
worker 数和服务器的 cpu 数相等是最为适宜的
5、连接数 worker_connection
第一个:发送请求,占用了 woker 的几个连接数?
答案:2 或者 4 个
第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的
最大并发数是多少?
l 普通的静态访问最大并发数是: worker_connections * worker_processes /2,
l 而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *
worker_processes/4。