nginx反向代理转发、正则、重写、负摘均衡配置案例

Nginx 是一个非常强大的 HTTP 和反向代理服务器,它可以通过配置文件来设置各种路由规则。以下是一些基本的 Nginx 反向代理路由配置示例:

基本的反向代理配置

nginx
http {
server {
listen 80; # 监听80端口

    location / {
        proxy_pass http://backend;  # 将请求转发到名为 backend 的服务器组
        proxy_set_header Host $host;  # 设置请求头,将原始请求的 Host 头部传递给后端服务器
        proxy_set_header X-Real-IP $remote_addr;  # 设置请求头,将客户端的真实IP传递给后端服务器
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 设置请求头,记录代理链路的IP地址
    }
}

}

基于路径的路由规则

nginx
http {
server {
listen 80;

    location /app1/ {
        proxy_pass http://backend1;
    }

    location /app2/ {
        proxy_pass http://backend2;
    }
}

}

在这个配置中,/app1/ 路径下的请求会被转发到 backend1,而 /app2/ 路径下的请求会被转发到 backend2

带有正则表达式的路由规则

nginx
http {
server {
listen 80;

    location ~* ^/app/(\w+)/ {
        proxy_pass http://backend$1;
    }
}

}

在这个配置中,任何匹配正则表达式 ^/app/(\w+)/ 的请求都会被转发到对应的 backend 服务器组,其中 $1 是正则表达式中的第一个捕获组,它会匹配 (\w+) 中的内容。

带有重写规则的路由

nginx
http {
server {
listen 80;

    location /some/path/ {
        rewrite ^/some/path/(.*) /new/path/$1 break;  # 重写请求路径
        proxy_pass http://backend;
    }
}

}

这里,rewrite 指令用于修改请求的 URI,然后转发到 backend

负载均衡配置

nginx
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}

server {
    listen 80;

    location / {
        proxy_pass http://backend;  # 使用 upstream 定义的负载均衡组
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

}

在上述配置中,upstream 指令定义了一个名为 backend 的服务器组,Nginx 将根据配置的策略(默认是轮询)将请求分发到不同的后端服务器。

这些示例展示了 Nginx 反向代理配置的基础。根据具体需求,还可以配置更多的指令,如缓存、HTTPS、访问控制等。记得在修改配置文件后,使用 nginx -t 来测试配置文件的正确性,并使用 nginx -s reload 来重新加载配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值