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;
}
相关推荐
Maiko Star6 分钟前
Word工具类——实现导出自定义Word文档(基于FreeMarker模板引擎生成动态内容的Word文档)
java·word·springboot·工具类
优雅的38度7 分钟前
maven的多仓库配置理解
java·架构
周末吃鱼13 分钟前
研发快速使用JMeter
java·jmeter
EntyIU14 分钟前
自己实现mybatisplus的批量插入
java·后端
小途软件25 分钟前
基于深度学习的人脸检测算法研究
java·人工智能·pytorch·python·深度学习·语言模型
小CC吃豆子37 分钟前
Java数据结构与算法
java·开发语言
晨旭缘38 分钟前
后端日常启动及常用命令(Java)
java·开发语言
CodeAmaz39 分钟前
ArrayList 底层原理
java·arraylist
山峰哥39 分钟前
3000字深度解析:SQL调优如何让数据库查询效率提升10倍
java·服务器·数据库·sql·性能优化·编辑器
tkevinjd41 分钟前
JUC2(多线程中常用的成员方法)
java