nginx的负载均衡配置和重定向

upstream_check模块

配置文件详情

复制代码
upstream cluster1{
 server 10.0.0.4:80  weight=1 max_fails=3 fail_timeout=30s;
 server 10.0.0.5:80  weight=1 max_fsils=3 fsil_tomeout;
 check interval=3000 rise=2 fall=5 timeout=1000 type=http;

 check interval=3000 rise=2 fall=5 timeout=1000 type=http;
 check_http_send "HEAD /HTTP/1.0/r/n/r/n";
 check_http_expect_alive http_2xx http_3xx;
} 

server {
    listen 80;
    server_name Lb.oldboylinux.cn;
    error_log /var/log/nginx/lb-error.log notice;
    access_log /var/log/nginx/lb-access.log main;

    location / {
        proxy_pass http://lb_pools;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}
 
 

location /1{
      proxy_pass http://cluster1;
}

location /2{

      proxy_pass http://cluster2;
}

location /status{
      check_status;
      access_log  off;
      allow 10.0.0.1;
      allow 10.0.0.0/24;
      deny all;
}

}

最后访问Lb.oldboylinux.cn页面出来的是测试模块

web集群 nginx rewrite功能

nginx重定向

url重定向又叫做url改写

rewrite模块

return指令

我们在配置文件中加入reutrn 模块

具体如下

复制代码
server {
    listen 80;
    server_name rewrite.xm cn;  # 修正 server_name
    root /app/code/rewrite;

    location / {
        index index.html;
        try_files $uri $uri/ =404;  # 处理文件不存在的情况
    }

    location /admin/ {
        return 403;  # 禁止访问
    }
}

当我们做好域名解析以后 访问网站/admin/模块就会出现以下情形

域名间跳转

复制代码
server {
    listen 80;
    server_name rewrite.xm cn;  # 修正 server_name
    root /app/code/rewrite;

    # 对根路径的请求
    location / {
        index index.html;
        try_files $uri $uri/ =404;  # 处理文件不存在的情况
    }

    # 对/admin/路径的请求
    location /admin/ {
        return 403;  # 禁止访问
    }

    # 如果希望重定向某个具体路径,可以添加相应的 location 块
    location /redirect {
        return 301 http://www.baidu.com;  # 重定向到百度
    }
}

nginx if判断

一般放在 server,location

if(条件){

满足条件执行的内容

}

set 自己创建或者修改nginx变量

set $变量 值

复制代码
http {
    server {
        listen 80;
        server_name example.com;

        # 设置一个变量
        set $is_mobile "no";

        # 检查请求头中的User-Agent是否包含"Mobile"
        if ($http_user_agent ~* "Mobile") {
            set $is_mobile "yes";
        }

        location / {
            # 如果变量$is_mobile为"yes",则返回状态码403
            if ($is_mobile = "yes") {
                return 403;
            }

            # 否则,返回状态码200
            return 200;
        }
    }
}

rewrite模块

域名跳转

复制代码
server {
    listen 80;
    server_name rewrite.oldboylinux.cn;



    # 这一行是实际执行的重写规则
    rewrite ^([^/]*)$ http://www.baidu.com$1;
}
相关推荐
卓码软件测评32 分钟前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化
编码浪子3 小时前
趣味学RUST基础篇(异步)
服务器·rust·负载均衡
Lionel_SSL4 小时前
《深入理解Java虚拟机》第三章读书笔记:垃圾回收机制与内存管理
java·开发语言·jvm
记得开心一点嘛4 小时前
手搓Springboot
java·spring boot·spring
老华带你飞5 小时前
租房平台|租房管理平台小程序系统|基于java的租房系统 设计与实现(源码+数据库+文档)
java·数据库·小程序·vue·论文·毕设·租房系统管理平台
独行soc5 小时前
2025年渗透测试面试题总结-66(题目+回答)
java·网络·python·安全·web安全·adb·渗透测试
脑子慢且灵5 小时前
[JavaWeb]模拟一个简易的Tomcat服务(Servlet注解)
java·后端·servlet·tomcat·intellij-idea·web
华仔啊6 小时前
SpringBoot 中 6 种数据脱敏方案,第 5 种太强了,支持深度递归!
java·后端
异常驯兽师7 小时前
Spring 中处理 HTTP 请求参数注解全解析
java·spring·http
连合机器人7 小时前
晨曦中的守望者:当科技为景区赋予温度
java·前端·科技