nginx转发汇总

文章详细描述了如何使用Nginx的stream模块转发MySQL和Redis请求,以及如何在不同场景下进行负载均衡,包括标准端口映射、SSL连接和流量镜像。
摘要由CSDN通过智能技术生成

mysql,redis通过stream转发,只能通过端口不能使用server_name,普通的端口通过http转发,可以使用server_name,并且能共用一个端口

  1. nginx转发mysql
stream {
   allow 39.156.66.10;
   deny all;
   upstream cloudsocket {
       hash $remote_addr consistent;
       server 127.0.0.1:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 23306;#数据库服务器监听端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
       proxy_pass cloudsocket;
    }
}

将3306端口映射到23306端口
2. nginx转发redis

stream {
upstream redis_backend { server 127.0.0.1:6379; }

server {
    listen 26379;
    proxy_pass redis_backend;
}
}

3.nginx转发普通接口

http {
server {
    listen       80;
    listen       [::]:80;
    server_name  www.baidu.com;
#    return       301 https://$host$request_uri;
        location / {
        proxy_pass http://localhost:8080/;
    }
}

server {
    listen       443 ssl;
    listen  [::]:443 ssl;
    server_name  www.baidu.com;

    ssl_certificate        ssl/ www.baidu.com.cer;
    ssl_certificate_key    ssl/ www.baidu.com.key;

    location / {
        proxy_pass http://localhost:8080/;
    }
}
}

4、流量镜像(不是负载均衡)
将一条请求同时分发为多个请求

http {  
    # 定义镜像后端服务器  
    upstream mirror_backend {  
        server mirror.example.com;  
    }  
  
    server {  
        listen 80;  
        server_name example.com;  
  
        location / {  
            # 配置主要后端  
            proxy_pass http://main_backend;  
  
            # 根据条件进行请求镜像  ,这个判断可以去掉
            if ($http_mirror_enabled = "true") {  
                mirror /mirror;  
            }  
        }  
  
        # 镜像位置  
        location = /mirror {  
            internal;  
            proxy_pass http://mirror_backend;  
            # 其他配置...  
        }  
    }  
}
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值