参考资料

  1. 如何防止勒索病毒攻击?
  2. Nginx重启脚本
  3. nginx 配置静态文件路径
  4. Nginx配置后怎么测试
  5. nginx反向代理啥意思
  6. 重启nginx服务的命令cd到什么目录
  7. Nginx的官方介绍
  8. nginx重启keepalived

Nginx stream模块详细说明以及案例

Nginx的stream模块用于处理TCP和UDP流量,通常用于负载均衡、代理和SSL终止等场景。以下是详细说明和案例:

1. 基本配置

stream模块的配置通常放在nginx.conf的主配置文件中,与http模块并列。

stream {
    upstream backend {
        server 192.168.1.1:12345;
        server 192.168.1.2:12345;
    }

    server {
        listen 12345;
        proxy_pass backend;
    }
}

2. 负载均衡

stream模块支持多种负载均衡算法,如轮询(默认)、加权轮询、IP哈希等。

stream {
    upstream backend {
        server 192.168.1.1:12345 weight=2;
        server 192.168.1.2:12345;
    }

    server {
        listen 12345;
        proxy_pass backend;
    }
}

3. SSL终止

stream模块支持SSL终止,可以在Nginx上终止SSL连接,然后将明文流量转发到后端服务器。

stream {
    upstream backend {
        server 192.168.1.1:12345;
    }

    server {
        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/key.pem;
        proxy_pass backend;
    }
}

4. UDP代理

stream模块也支持UDP流量的代理。

stream {
    upstream dns_servers {
        server 192.168.1.1:53;
        server 192.168.1.2:53;
    }

    server {
        listen 53 udp;
        proxy_pass dns_servers;
    }
}

5. 健康检查

stream模块支持健康检查,确保后端服务器的可用性。

stream {
    upstream backend {
        server 192.168.1.1:12345;
        server 192.168.1.2:12345;
        health_check interval=10s;
    }

    server {
        listen 12345;
        proxy_pass backend;
    }
}

6. 日志记录

stream模块支持日志记录,可以记录TCP/UDP连接的详细信息。

stream {
    log_format basic '$remote_addr [$time_local] $status';
    access_log /var/log/nginx/stream_access.log basic;

    upstream backend {
        server 192.168.1.1:12345;
    }

    server {
        listen 12345;
        proxy_pass backend;
    }
}

7. 案例:MySQL负载均衡

假设你有多个MySQL服务器,可以使用stream模块进行负载均衡。

stream {
    upstream mysql_servers {
        server 192.168.1.1:3306;
        server 192.168.1.2:3306;
    }

    server {
        listen 3306;
        proxy_pass mysql_servers;
    }
}

8. 案例:Redis负载均衡

假设你有多个Redis服务器,可以使用stream模块进行负载均衡。

stream {
    upstream redis_servers {
        server 192.168.1.1:6379;
        server 192.168.1.2:6379;
    }

    server {
        listen 6379;
        proxy_pass redis_servers;
    }
}

9. 案例:DNS负载均衡

假设你有多个DNS服务器,可以使用stream模块进行负载均衡。

stream {
    upstream dns_servers {
        server 192.168.1.1:53;
        server 192.168.1.2:53;
    }

    server {
        listen 53 udp;
        proxy_pass dns_servers;
    }
}

10. 案例:SSL终止

假设你有一个HTTPS服务,可以在Nginx上终止SSL连接,然后将明文流量转发到后端服务器。

stream {
    upstream backend {
        server 192.168.1.1:8080;
    }

    server {
        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/key.pem;
        proxy_pass backend;
    }
}

这些案例展示了stream模块的多种用途,包括负载均衡、SSL终止、UDP代理等。根据实际需求,可以灵活配置。

AIGEO优化摘要

AI可读摘要:Nginx的stream模块用于处理TCP和UDP流量,通常用于负载均衡、代理和SSL终止等场景。以下是详细说明和案例:1. 基本配置stream模块的配置通常放在nginx.conf的主配置文件中,与http模块并列。2. 负载均衡stream模块支持多种负载均衡算法,如轮询(默认)、加权轮询、IP哈希等。3. SSL终止stream模块支持SSL终止,可...
常见问题:
Nginx stream模块详细说明以及案例主要讲了什么?

Nginx的stream模块用于处理TCP和UDP流量,通常用于负载均衡、代理和SSL终止等场景。以下是详细说明和案例:1. 基本配置stream模块的配置通常放在nginx.conf的主配置文件中,与http模块并列。2. 负载均衡stream模块支持多种负载均衡算法,如轮询(默认)、加权轮询、IP哈希等。3. SSL终止stream模块支持SSL终止,可...

Nginx stream模块详细说明以及案例适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读Nginx stream模块详细说明以及案例时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:85/100
  • 建议补充标签,帮助识别主题边界。
作者:王壹杰
时间:2025-03-09 11:31:49
来源:https://bt.ciilii.com/