Nginx的这些妙用,你肯定有不知道的!
添加监听端口、访问名字重点是添加 Location,最后检查 Nginx 配置是否正确即可,然后测试动静分离是否成功,只需要删除后端 Tomcat 服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源 Nginx 直接返回了,不走后端 Tomcat 服务器。 Nginx 的 Rewrite Rewrite 是 Nginx 服务器提供的一个重要的功能,它可以实现 URL 重写和重定向功能。 场景如下: URL 访问跳转,支持开发设计。页面跳转、兼容性支持(新旧版本更迭)、展示效果(网址精简)等 SEO 优化(Nginx 伪静态的支持) 后台维护、流量转发等 安全(动态界面进行伪装) 该指令是通过正则表达式的使用来改变 URI。可以同时存在一个或多个指令。需要按照顺序依次对 URL 进行匹配和处理。 该指令可以在 Server 块或 Location 块中配置,其基本语法结构如下: rewrite regex replacement [flag]; ①采用反向代理 Demo2 中的例子,修改 nginx.conf(只多加了一行 Rewrite): server { listen 80; server_name localhost;
location /java/ { proxy_pass :8080; rewrite ^/java /egg/ redirect; }
location /egg/ { proxy_pass :8081; } } ②./nginx -s reload,验证效果(输入 ip/java/ 被重定向到了 egg): Rewrite 指令可以在 Server 块或 Location 块中配置,其基本语法结构如下: rewrite regex replacement [flag]; rewrite 的含义:该指令是实现 URL 重写的指令。 regex 的含义:用于匹配 URI 的正则表达式。 replacement:将 regex 正则匹配到的内容替换成 replacement。 flag:flag 标记。 flag 有如下值: last:本条规则匹配完成后,继续向下匹配新的 Location URI 规则。(不常用) break:本条规则匹配完成即终止,不再匹配后面的任何规则(不常用)。 redirect:返回 302 临时重定向,浏览器地址会显示跳转新的 URL 地址。 permanent:返回 301 永久重定向。浏览器地址会显示跳转新的 URL 地址。 rewrite ^/(.*) $1 permanent; Nginx 高可用 如果将 Web 服务器集群当做一个城池,那么负载均衡服务器就相当于城门。如果“城门”关闭了,与外界的通道就断了。 如果只有一台 Nginx 负载服务器,当故障宕机的时候,就会导致整个网站无法访问。 所以我们需要两台以上 Nginx 来实现故障转移和高可用: 那么如何配置高可用? ①双机热备方案 这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实就是指一台服务器在提供服务,另一台为某服务的备用状态,当一台服务器不可用另外一台就会顶替上去。 Keepalived 是什么?Keepalived 软件起初是专为 LVS 负载均衡软件设计的,用来管理并监控 LVS 集群系统中各个服务节点的状态。 后来又加入了可以实现高可用的 VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能。 因此,Keepalived 除了能够管理 LVS 软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL 等)的高可用解决方案软件。 ②故障转移机制 Keepalived 高可用服务之间的故障切换转移,是通过 VRRP 来实现的。 在 Keepalived服务正常工作时,主 Master 节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备 Backup 节点自己还活着。 当主 Master 节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master 节点的心跳了,于是调用自身的接管程序,接管主 Master 节点的 IP 资源及服务。 而当主 Master节点恢复时,备 Backup 节点又会释放主节点故障时自身接管的 IP 资源及服务,恢复到原来的备用角色。 实现方法如下:①准备两台安装 Nginx 和 Keepaliver(yum install keepalived -y)的服务器 ②修改两台服务器上的 /etc/keepalived/keepalived.conf #主机 #检测脚本 vrrp_script chk_http_port { script "/usr/local/src/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |