Nginx(十六) 配置文件详解 - server stream服务流

news/2024/7/10 1:58:17 标签: stream, 负载均衡

        本篇文章主要讲 ngx_stream_core_module 模块下各指令的使用方法,Nginx默认未配置该模块,需要用“--with-stream”配置参数重新编译Nginx。

worker_processes auto;

error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

stream {
    upstream backend {
        hash $remote_addr consistent;

        server backend1.example.com:12345 weight=5;
        server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;
        server unix:/tmp/backend3;
    }

    upstream dns {
       server 192.168.0.1:53535;
       server dns.example.com:53;
    }

    server {
        listen 12345;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }

    server {
        listen 127.0.0.1:53 udp reuseport;
        proxy_timeout 20s;
        proxy_pass dns;
    }

    server {
        listen [::1]:12345;
        proxy_pass unix:/tmp/stream.socket;
    }
}

1. stream 

Syntax:    stream { ... }
Default:    —
Context:    main

         为指定流服务器的指令提供配置文件上下文。

2. server 

Syntax:    server { ... }
Default:    —
Context:    stream

         设置服务器配置。

3. listen 

Syntax:    listen address:port [ssl] [udp] [proxy_protocol] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
Default:    —
Context:    server

        设置服务器接受连接的套接字address和port。可以仅指定port。address也可以是主机名。可以监听一个端口段range。

listen 127.0.0.1:12345;
listen *:12345;
listen 12345;     # same as *:12345
listen localhost:12345;

# IPv6 地址用方括号指定:
listen [::1]:12345;
listen [::]:12345;

# UNIX 域套接字以 "unix: "前缀指定:
listen unix:/var/run/nginx.sock;

# 端口范围用连字符分隔第一个和最后一个端口:
listen 127.0.0.1:12345-12399;
listen 12345-12399;

        udp:指定一个用于处理数据包的监听套接字(1.9.13)。为了在同一会话中处理来自同一地址和端口的数据包,还应指定 reuseport 参数。

4. proxy_protocol_timeout 代理协议超时时间

Syntax:    proxy_protocol_timeout timeout;
Default:    proxy_protocol_timeout 30s;
Context:    stream, server
This directive appeared in version 1.11.4.

        指定读取代理协议头的超时时间。如果在这段时间内没有传输完整个报头,连接将被关闭。

5. preread_buffer_size 预读取缓冲大小

Syntax:    preread_buffer_size size;
Default:    preread_buffer_size 16k;
Context:    stream, server
This directive appeared in version 1.11.5.

        指定预读取缓冲区的大小。

6. preread_timeout 预读取超时时间

Syntax:    preread_timeout timeout;
Default:    preread_timeout 30s;
Context:    stream, server
This directive appeared in version 1.11.5.

        指定预读取阶段的超时时间。

7. resolver DNS服务器

Syntax:    resolver address ... [valid=time] [ipv4=on|off] [ipv6=on|off] [status_zone=zone];
Default:    —
Context:    stream, server
This directive appeared in version 1.11.3.

        配置用于解析上游服务器域名的DNS服务器,

resolver 127.0.0.1 [::1]:5353;
resolver 127.0.0.1 [::1]:5353 valid=30s;

8. resolver_timeout 解析超时时间

Syntax:    resolver_timeout time;
Default:    resolver_timeout 30s;
Context:    stream, server
This directive appeared in version 1.11.3.

        设置解析超时时间。 

resolver_timeout 5s;

9. tcp_nodelay 

Syntax:    tcp_nodelay on | off;
Default:    tcp_nodelay on;
Context:    stream, server
This directive appeared in version 1.9.4.

        启用或禁用 TCP_NODELAY 选项。客户端和代理服务器连接均可启用该选项。

10. variables_hash_bucket_size 

Syntax:    variables_hash_bucket_size size;
Default:    variables_hash_bucket_size 64;
Context:    stream
This directive appeared in version 1.11.2.

        设置变量哈希表的桶大小。

11. variables_hash_max_size 

Syntax:    variables_hash_max_size size;
Default:    variables_hash_max_size 1024;
Context:    stream
This directive appeared in version 1.11.2.

        设置变量哈希表的最大大小。 


http://www.niftyadmin.cn/n/5305129.html

相关文章

基于Java SSM框架实现新闻推送系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现新闻推送系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spring属于…

SpringBoot从配置文件中获取属性的方法

方式一:Value 基本类型属性注入,直接在字段上添加Value("${xxx.xxx}")即可.注意这里用的是$,而不是#,Value注入的属性,一般其他属性没有关联关系。 配置文件 user:name: Manaphyage: 19sex: m…

使用 Parallels Desktop 彻底改变您的开发和测试工作流程

Parallels Desktop 等虚拟机平台已经改变了应用程序开发和测试。 在当今快节奏的技术环境中,开发人员和测试人员现在能够在虚拟沙箱中进行操作,能够使用容器、虚拟机或 Kubernetes 集群快速创建和拆除类似虚拟生产的环境。 无论您是为 Windows 或 Mac …

如何培养学生的创造性思维

在当下这个时代,创造力的重要性不言而喻。如何在日常教育中潜移默化地培养孩子的创造性思维呢? 一、激发好奇心,让思维自由飞翔 孩子天生就有一颗好奇的心,作为老师,要鼓励他们提问,鼓励他们去探索。好奇…

【LeetCode】20. 有效的括号(Deque的Stack用法)

今日学习的文章链接和视频链接 leetcode题目地址:20. 有效的括号 代码随想录题解地址:代码随想录 题目简介 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效…

vue3中状态管理库pinia的安装和使用方法介绍及和vuex的区别

Pinia 与 Vuex 一样,是作为 Vue 的“状态存储库”,用来实现 跨页面/组件 形式的数据状态共享。它允许你跨组件或页面共享状态。如果你熟悉组合式 API 的话,你可能会认为可以通过一行简单的 export const state reactive({}) 来共享一个全局状…

信息学奥赛一本通:装箱问题

题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid1917 题目 1917:【01NOIP普及组】装箱问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4117 通过数: 2443 【题目描述】 有一个箱子容量为V�(正整数&#xff0c…