高可用实战之Nginx + Apache篇

发布于:2025-08-14 ⋅ 阅读:(12) ⋅ 点赞:(0)

高可用实战之Nginx + Apache篇

目录

高可用实战之Nginx + Apache篇

一 . 准备4台服务器

二. 安装Nginx使用ngx_http_upstream_module 模块

1.  下载 Nginx 源代码

2.  解压源码包

3. 安装依赖

4. 配置编译选项

5.  编译和安装 Nginx

6. 验证启用的模块

7.安装完成,启动

查看端口是否开启

查看nginx 进程:

查看防火墙状态:

开放指定端口(例如 80)

修改配置后重新加载配置重启

Nginx停止

三.  另外 183,184 两台分配 安装 Apache HTTP Server (httpd)

1. 安装httpd

2. 启动httpd

3. 查看httpd的状态

4. 默认端口是80端口,把端口分别换成18091,18092

5. 检查配置文件是否有效

6. 将ServerName 127.0.0.1 添加到文件的第101行

7. 检查端口是否被占用

8. 查看httpd的错误日志

9. 检查和设置日志目录权限

10.  分别开放指定端口(例如18091|18092)

四. 通过配置Nginx来实现支持负载均衡和故障转移

1. 配置实现负载均衡

2. 验证配置文件是否有问题

3. 加载配置并重启

4. 此时此刻完成了完整的负载均衡

5. 把权重一个调整成2,一个调整成5

6. Nginx 之故障转移

7. Nginx 之动静分离

1.上传一张图片到183服务器的静态目录下,并界面验证访问,静态资源请求正常。

2. 在184 上面新建目录,模拟后端请求json

3. 配置nginx 动静分离

Nginx 模块及参数的详细解释


一 . 准备4台服务器

hostnamectl set-hostname Nginx01

hostnamectl set-hostname Nginx02

hostnamectl set-hostname Apache01
hostnamectl set-hostname Apache02

服务器IP

系统

主要组件

192.168.100.181

Rocky Linux 10.0 (Red Quartz)

nginx

192.168.100.182

Rocky Linux 10.0 (Red Quartz)

nginx

192.168.100.183

Rocky Linux 10.0 (Red Quartz)

httpd

192.168.100.184

Rocky Linux 10.0 (Red Quartz)

httpd

二. 安装Nginx使用ngx_http_upstream_module 模块

ngx_http_upstream_module:配置后端服务器组,支持负载均衡和故障转移。

Nginx 官网下载最新版本的安装包,不使用服务器yum安装,可能不是最新的,这样安装对扫漏又来进行打补丁解更方便。上传Nginx安装包至服务器,解压并进入目录执行安装。确保安装过程中包含ngx_http_upstream_module模块。编译安装时通过--add-module参数指定模块路径,若模块已内置则无需额外添加。安装完成后,修改Nginx配置文件nginx.conf,在http块中使用upstream指令定义后端服务器组,设置负载均衡算法如轮询、加权轮询或IP哈希等,同时配置server块中的proxy_pass指向定义的upstream名称,完成基础负载均衡配置。

Nginx 官网地址:nginx

ngx_http_upstream_module:模块地址 Module ngx_http_upstream_module

截止2025八月Nginx 版本1.29

下载Nginx1.29.0的地址:https://nginx.org/download/nginx-1.29.0.tar.gz

yum -y install wget vim tar net-tools

1.  下载 Nginx 源代码

wget https://nginx.org/download/nginx-1.29.0.tar.gz

2.  解压源码包

tar -zxvf nginx-1.29.0.tar.gz

cd nginx-1.29.0

3. 安装依赖

当前系统属于红帽系列

yum groupinstall "Development Tools"

yum install pcre-devel zlib-devel openssl-devel

4. 配置编译选项

ngx_http_upstream_module 是 Nginx 默认启用的模块,养成习惯安装指定启动模块。

常规安装包含的模块

./configure --prefix=/usr/local/nginx \

            --with-http_ssl_module \

            --with-http_upstream_module

--prefix=/usr/local/nginx:指定 Nginx 的安装路径。

--with-http_ssl_module:启用 SSL 支持,用于 HTTPS。

--with-http_upstream_module:启用上游模块,用于设置负载均衡和反向代理

备注:默认是不要显式地启用 --with-http_upstream_module,因为它已经是默认启用的模块

编译执行

./configure --prefix=/usr/local/nginx --with-http_ssl_module

这个错显示编译的时候缺少pcre库。

本次统一都是用二进制包安装;

pcre库官网地址:https://www.pcre.org/

下载地址:https://psychz.dl.sourceforge.net/project/pcre/pcre2/10.37/pcre2-10.37.tar.gz?viasf=1

tar -xzvf pcre2-10.37.tar.gz

使用 --with-pcre=<path> 指定 PCRE 库的路径编译通过

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=/home/pcre2-10.37


 

5.  编译和安装 Nginx

配置完后,继续使用 make 和 make install 来编译并安装 Nginx:

make && make install

6. 验证启用的模块

完成编译和安装后,你可以通过以下命令查看已启用的模块:

/usr/local/nginx/sbin/nginx -V

7.安装完成,启动

/usr/local/nginx/sbin/nginx

查看端口是否开启

ss -tuln | grep :80

  1. 查看nginx 进程:

ps aux | grep nginx

查看防火墙状态:

firewall-cmd --state

开放指定端口(例如 80)

sudo firewall-cmd --permanent --add-port=80/tcp

sudo firewall-cmd --reload

修改配置后重新加载配置重启

 /usr/local/nginx/sbin/nginx -s reload

Nginx停止

/usr/local/nginx/sbin/nginx -s stop

三.  另外 183,184 两台分配 安装 Apache HTTP Server (httpd)

1. 安装httpd

yum install httpd -y

2. 启动httpd

systemctl start httpd

3. 查看httpd的状态

systemctl status httpd

4. 默认端口是80端口,把端口分别换成18091,18092

192.168.100.183    端口     18091

sed -i 's/^Listen 80$/Listen 18091/' /etc/httpd/conf/httpd.conf

192.168.100.184    端口     18092

sed -i 's/^Listen 80$/Listen 18092/' /etc/httpd/conf/httpd.conf

5. 检查配置文件是否有效

apachectl configtest

6. 将ServerName 127.0.0.1 添加到文件的第101

sed -i '101i ServerName 127.0.0.1' /etc/httpd/conf/httpd.conf

7. 检查端口是否被占用

netstat -tuln | grep -E '18091|18092'

8. 查看httpd的错误日志

tail -f /var/log/httpd/error_log

9. 检查和设置日志目录权限

确保 Apache 有权访问日志目录。检查日志目录的权限,例如:

ls -ld /var/log/httpd/

确保 Apache 用户对日志目录具有写权限。如果没有权限,可以使用以下命令修复权限:

chown -R apache:apache /var/log/httpd/

chmod -R 755 /var/log/httpd/

解决方法: 如果您怀疑 SELinux 是问题的根源,可以临时禁用 SELinux,看看是否可以启动 Apache:

setenforce 0

10.  分别开放指定端口(例如18091|18092

192.168.100.183    端口     18091

firewall-cmd --permanent --add-port=18091/tcp

firewall-cmd --reload

192.168.100.184    端口     18092

firewall-cmd --permanent --add-port=18092/tcp

firewall-cmd --reload

11. 自定义网站存放路径

mkdir -p /home/www/mywebsite/

设置权限

chown -R apache:apache /home/www/mywebsite/

chmod -R 755 /home/www/mywebsite

sed -i 's|DocumentRoot "/var/www/html"|DocumentRoot "/home/www/mywebsite"|' /etc/httpd/conf/httpd.conf

sudo sed -i '/<Directory "\/var\/www\/html">/,/<\/Directory>/c\<Directory "/home/www/mywebsite">\n    Options Indexes FollowSymLinks\n    AllowOverride All\n    Require all granted\n</Directory>' /etc/httpd/conf/httpd.conf

12. 在183,184机器上自己的目录站点上分别添加index.html

[root@Apache02 mywebsite]# ll -ld ../mywebsite/

drwxr-xr-x. 2 apache apache 6 Aug 12 19:44 ../mywebsite/

[root@Apache02 mywebsite]# vim index.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Apache2 Site</title>

</head>

<body>

    <h1>这是 Apache02 站点!</h1>

    <p>IP地址:192.168.100.184</p>

<p>端口:18092</p>

 <p>01和02站点内容一样</p>

</body>

</html>

[root@Apache01 mywebsite]# pwd

/home/www/mywebsite

[root@Apache01 mywebsite]# vim index.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Apache2 Site</title>

</head>

<body>

    <h1>这是 Apache01 站点!</h1>

    <p>IP地址:192.168.100.183</p>

    <p>端口:18091</p>

    <p>01和02站点内容一样</p>

</body>

四. 通过配置Nginx来实现支持负载均衡和故障转移

1. 配置实现负载均衡

官网参考:Module ngx_http_upstream_module

cd /usr/local/nginx/conf

cp nginx.conf nginx.conf_back

使用 sed 删除注释行让看起更加清爽:

sed -i '/^\s*#/d' /usr/local/nginx/conf/nginx.conf

vim nginx.conf

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    upstream lb_webserver {

         server 192.168.100.183:18091       weight=5;

         server 192.168.100.184:18092       weight=5;

    }

    server {

        listen       80;

        server_name  localhost;

        location / {

            proxy_pass http://lb_webserver;

        }

     }

}

2. 验证配置文件是否有问题

[root@Nginx01 conf]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

3. 加载配置并重启

[root@Nginx01 conf]# /usr/local/nginx/sbin/nginx -s reload

[root@Nginx01 conf]#

4. 此时此刻完成了完整的负载均衡

weight:表示服务器的权重,权重值越高,Nginx 将分配给该服务器的请求就越多。在配置负载均衡时,如果没有指定 weight,则默认所有服务器的权重为 1。 都为5的时候,你一次我一次的轮询负责。根据生产实际的情况,权重大小调整越小轮询的值越小,意味着轮询的次数越少,权重值越大,轮询的次数越多。

示例:

echo "这是 Apache01 站点!IP地址:192.168.100.183; 端口:18091; 01和02站点内容一样" > /home/www/mywebsite/index.html

echo "这是 Apache02 站点!IP地址:192.168.100.184; 端口:18092; 01和02站点内容一样" > /home/www/mywebsite/index.html

5. 把权重一个调整成2,一个调整成5

 server 192.168.100.183:18091       weight=2;

 server 192.168.100.184:18092       weight=5;

6. Nginx 之故障转移

轮询节点可以是多台,备份节点也可以是多台。官网例子:

server 192.168.100.183:18091   weight=5;  #轮询节点

server 192.168.100.184:18092   backup; #轮询节点全部故障后跳转到备份节点

让183服务停止,验证是否可以跳转到备份节点:

7. Nginx 之动静分离

动静分离(Static and Dynamic Separation)是指将静态资源(如图片、CSS、JavaScript文件等)和动态请求(如PHP、Python、Java等后端处理请求)分别由不同的服务器或不同的路径进行处理。Nginx作为反向代理服务器,可以帮助我们高效地实现这一分离。

静态资源:是指不需要服务器处理的文件,通常是图片、CSS、JavaScript、字体文件等。这些文件通常可以直接从磁盘读取,响应速度较快。

动态请求:是指需要服务器进行处理并生成动态内容的请求,通常包括数据查询、页面生成等操作。比如,PHP、Java、Node.js等后台语言处理的请求。

性能优化:

  • 静态资源通常无需经过应用服务器的处理,可以直接由 Nginx 提供,减少了应用服务器的负担。
  • 静态资源文件通常较大且请求频繁,直接通过 Nginx 提供可以大大提高响应速度。

        #静态缓存30天 

        expires 30d;  

1.上传一张图片到183服务器的静态目录下,并界面验证访问,静态资源请求正常。

http://192.168.100.183:18091/static/01.jpg

2. 在184 上面新建目录,模拟后端请求json

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>动态请求文件内容</title>

</head>

<body>

    <h1>文件内容展示</h1>

    <div id="content">正在加载...</div>

    <script>

        fetch('dynamic/file.json').then(response => response.json())  // 解析 JSON 格式的响应

           .then(data => {

                 // 处理并展示 JSON 数据

                 console.log(data);

                 document.getElementById('content').innerText = JSON.stringify(data, null, 2);

           })

        .catch(error => {

            document.getElementById('content').innerText = '错误: ' + error.message;

        });

    </script>

</body>

{

  "name": "张三",

  "age": 30,

  "phoneNumbers": [

    {

      "type": "home",

      "number": "028-11111111"

    },

    {

      "type": "mobile",

      "number": "15908113332"

    }

  ],

  "isActive": true

}

3. 配置nginx 动静分离

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    #静态请求的服务器组

    upstream lb_static {

         server 192.168.100.183:18091   weight=5;

    }

    #动态请求的服务器组

    upstream lb_dynamic {

         zone upstream_dynamic 64k;

         server 192.168.100.184:18092  weight=5;

    }

    server {

        listen       80;

        server_name  localhost;

        location / {

            proxy_pass http://lb_dynamic;

        }

        location /static/ {

            proxy_pass http://lb_static;

            expires 30d;

        }

     }

}

备注: 同一个域名,动态请求走的动态服务器组,静态文件走的是静态文件组

Nginx 模块及参数的详细解释

模块名称

说明

示例

ngx_http_core_module

Nginx 核心模块,提供基本的 HTTP 功能和配置支持。

worker_processes 4; 用于配置 Nginx 使用的工作进程数。

ngx_http_access_module

控制访问权限的模块,通过 IP 地址或其他条件来控制访问权限。

deny 192.168.1.1; 阻止指定 IP 地址的访问。

ngx_http_addition_module

允许在响应中附加内容,用于动态地修改 HTTP 响应。

add_header X-Frame-Options SAMEORIGIN; 在响应中添加 X-Frame-Options 头部。

ngx_http_api_module

提供 API 功能的模块。

location /api { api; } 配置 API 路由。

ngx_http_auth_basic_module

支持基本认证的模块,通过用户名和密码保护资源。

auth_basic "Restricted"; 启用基本认证,要求输入用户名和密码。

ngx_http_auth_jwt_module

支持通过 JWT (JSON Web Token) 实现认证的模块。

auth_jwt "secret"; 使用 JWT 进行认证。

ngx_http_auth_request_module

支持通过外部请求进行认证的模块。

auth_request /auth; 将认证请求转发给 /auth 路径。

ngx_http_autoindex_module

生成目录列表的模块,当目录没有 index.html 等文件时,会列出目录内容。

autoindex on; 打开目录自动索引功能。

ngx_http_browser_module

根据浏览器的 User-Agent 提供不同的响应内容。

if ($http_user_agent ~ "MSIE") { add_header X-Content-Type-Options nosniff; }

ngx_http_charset_module

设置响应字符集的模块。

charset UTF-8; 设置响应字符集为 UTF-8。

ngx_http_dav_module

用于支持 WebDAV 协议的模块,允许上传、下载和管理文件。

dav_methods PUT DELETE MKCOL COPY MOVE; 配置 WebDAV 支持的 HTTP 方法。

ngx_http_empty_gif_module

返回一个 1x1 像素的空白 GIF 图像的模块,常用于占位或防止爬虫访问。

location /empty.gif { empty_gif; } 返回一个空白 GIF 图像。

ngx_http_f4f_module

支持 F4F (FastCGI to FastCGI) 功能的模块。

fastcgi_pass unix:/tmp/php-fpm.sock; 配置 FastCGI 后端服务器。

ngx_http_fastcgi_module

支持 FastCGI 协议的模块,用于连接 PHP、Perl 等动态语言的应用。

fastcgi_pass 127.0.0.1:9000; 配置 FastCGI 服务器地址。

ngx_http_flv_module

提供对 FLV 视频格式的支持,允许流式传输 FLV 视频文件。

location /video/ { flv; } 启用 FLV 文件的支持。

ngx_http_geo_module

根据客户端 IP 地址来设置变量,例如实现地理位置的限制。

geo $country { default CN; 192.168.1.0/24 US; } 根据 IP 地址设置国家变量。

ngx_http_geoip_module

基于 GeoIP 数据库进行地理位置识别的模块。

geoip_country /usr/share/GeoIP/GeoIP.dat; 根据 IP 地址识别国家。

ngx_http_grpc_module

支持 gRPC 协议的模块。

grpc_pass grpc://localhost:50051; 配置 gRPC 服务器地址。

ngx_http_gunzip_module

支持解压 GZIP 压缩内容的模块。

gunzip on; 启用 GZIP 解压缩功能。

ngx_http_gzip_module

支持压缩 HTTP 响应内容为 GZIP 格式的模块。

gzip on; 启用 GZIP 压缩。

ngx_http_gzip_static_module

支持为静态文件启用 GZIP 压缩的模块。

gzip_static on; 为静态文件启用 GZIP 压缩。

ngx_http_headers_module

设置 HTTP 响应头的模块。

add_header X-Content-Type-Options nosniff; 设置响应头。

ngx_http_hls_module

支持 HLS (HTTP Live Streaming) 的模块。

hls on; 开启 HLS 支持。

ngx_http_image_filter_module

图像处理模块,可以对图像进行裁剪、缩放等操作。

image_filter resize 320 240; 对图像进行缩放操作。

ngx_http_index_module

配置默认的索引文件,例如 index.html。

index index.html; 设置默认文件为 index.html。

ngx_http_internal_redirect_module

支持内部重定向的模块,可以在不发起新的请求的情况下重定向请求。

error_page 404 = /404.html; 配置内部重定向到自定义页面。

ngx_http_js_module

支持 JavaScript 的模块,用于更复杂的 HTTP 请求处理。

js_include some_script.js; 包含 JavaScript 文件。

ngx_http_keyval_module

支持通过键值对设置变量的模块。

set $var value; 设置一个变量。

ngx_http_limit_conn_module

限制连接数的模块。

limit_conn_zone $binary_remote_addr zone=addr:10m; 限制每个客户端的连接数。

ngx_http_limit_req_module

限制请求速率的模块。

limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s; 限制请求频率。

ngx_http_log_module

提供日志记录功能的模块,常用于访问日志和错误日志。

access_log /var/log/nginx/access.log; 配置访问日志。

ngx_http_map_module

根据条件设置变量值的模块,例如根据请求头或 URL 动态决定响应内容。

map $http_ua $blocked { default 0; "BadBot" 1; } 根据 User-Agent 判断是否屏蔽访问。

ngx_http_memcached_module

支持连接 Memcached 的模块。

memcached_pass 127.0.0.1:11211; 配置 Memcached 服务器地址。

ngx_http_mirror_module

支持请求镜像的模块,用于调试或故障排查。

mirror /mirror; 启用请求镜像功能。

ngx_http_mp4_module

支持 MP4 视频流的模块,通常用于播放 MP4 格式的视频文件。

mp4; 启用 MP4 文件流支持。

ngx_http_oidc_module

支持 OpenID Connect 的认证模块。

oidc_provider http://oidc.example.com; 配置 OpenID Connect 提供者。

ngx_http_perl_module

支持 Perl 脚本处理的模块。

perl_set $foo 'sub { return 42; }'; 设置 Perl 脚本变量。

ngx_http_proxy_module

支持反向代理的模块,将请求转发到后端服务器。

proxy_pass http://backend; 配置代理服务器地址。

ngx_http_proxy_protocol_vendor_module

支持 Proxy Protocol 协议的模块。

proxy_protocol on; 启用 Proxy Protocol 支持。

ngx_http_random_index_module

提供随机选择索引文件的模块。

random_index on; 启用随机索引文件选择功能。

ngx_http_realip_module

通过 X-Real-IP 或 X-Forwarded-For 等头部获取客户端真实 IP 地址的模块。

real_ip_header X-Forwarded-For; 配置获取真实 IP 地址的请求头部。

ngx_http_referer_module

用于访问控制和检查 HTTP Referer 头的模块。

referer_check www.example.com; 检查 Referer 是否来自特定域名。

ngx_http_rewrite_module

进行 URL 重写的模块。

rewrite ^/oldpage$ /newpage permanent; 将旧 URL 重写为新 URL。

ngx_http_scgi_module

支持 SCGI 协议的模块。

scgi_pass 127.0.0.1:4000; 配置 SCGI 服务器地址。

ngx_http_secure_link_module

支持安全链接的模块,用于生成和验证带有签名的 URL。

secure_link $arg_st $arg_e; 使用 URL 中的参数验证链接。

ngx_http_session_log_module

提供会话日志记录的模块。

session_log /var/log/nginx/session.log; 配置会话日志。

ngx_http_slice_module

支持将大文件切片的模块,常用于大文件下载。

slice 1m; 将响应内容切片为 1MB 大小。

ngx_http_split_clients_module

用于将请求分发到不同的服务器或路径的模块。

split_clients $remote_addr $key { 0.5% /path1; 99.5% /path2; } 根据客户端地址分流请求。

ngx_http_ssi_module

支持服务器端包含 (SSI) 的模块,通常用于动态生成网页内容。

ssi on; 启用服务器端包含功能。

ngx_http_ssl_module

提供 HTTPS 支持的模块,用于加密 HTTP 流量。

ssl_certificate /path/to/certificate.crt; 配置 SSL 证书。

ngx_http_status_module

提供服务器状态信息的模块。

location /status { stub_status on; } 显示 Nginx 服务器状态信息。

ngx_http_stub_status_module

提供简要的服务器状态信息的模块。

location /status { stub_status on; } 显示 Nginx 服务器状态信息。

ngx_http_sub_module

支持在响应中进行内容替换的模块。

sub_filter 'old' 'new'; 在响应中替换文本。

ngx_http_upstream_module

配置后端服务器组,支持负载均衡和故障转移。

upstream backend { server 127.0.0.1:8080; server 127.0.0.1:8081; } 配置负载均衡的后端服务器。

ngx_http_upstream_conf_module

提供更细粒度的后端服务器配置选项。

upstream backend { server 127.0.0.1:8080 weight=3; } 配置权重负载均衡。

ngx_http_upstream_hc_module

提供后端服务器健康检查功能。

upstream backend { server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; } 配置健康检查。

ngx_http_userid_module

提供用户 ID 功能的模块。

userid on; 启用用户 ID 功能。

ngx_http_uwsgi_module

支持 uWSGI 协议的模块,通常用于与 Python 应用连接。

uwsgi_pass 127.0.0.1:4000; 配置 uWSGI 服务器地址。

ngx_http_v2_module

支持 HTTP/2 协议的模块。

http2 on; 启用 HTTP/2 协议。

ngx_http_v3_module

支持 HTTP/3 协议的模块。

http3 on; 启用 HTTP/3 协议。

ngx_http_xslt_module

提供对 XSLT 转换的支持。

xslt_stylesheet /styles/style.xsl; 应用 XSLT 样式表。

ngx_mail_core_module

Nginx 邮件模块的核心功能,支持 POP3、IMAP、SMTP 等邮件协议。

mail { server { listen 25; } } 配置邮件服务器。

ngx_mail_auth_http_module

通过 HTTP 实现邮件认证的模块。

auth_http http://auth.example.com; 配置邮件认证 HTTP 请求。

ngx_mail_proxy_module

支持邮件代理功能的模块。

proxy_pass smtp://127.0.0.1:25; 配置邮件代理。

ngx_mail_realip_module

获取真实客户端 IP 地址的模块,适用于邮件代理。

real_ip_header X-Real-IP; 配置邮件的真实 IP 获取。

ngx_mail_ssl_module

提供邮件协议的 SSL/TLS 加密支持。

ssl_certificate /path/to/certificate.crt; 配置邮件 SSL 证书。

ngx_mail_imap_module

支持 IMAP 协议的邮件模块。

imap_pass 127.0.0.1:1143; 配置 IMAP 服务器地址。

ngx_mail_pop3_module

支持 POP3 协议的邮件模块。

pop3_pass 127.0.0.1:110; 配置 POP3 服务器地址。

ngx_mail_smtp_module

支持 SMTP 协议的邮件模块。

smtp_pass 127.0.0.1:25; 配置 SMTP 服务器地址。

ngx_stream_core_module

Nginx 流式数据传输模块,支持 TCP/UDP 等协议。

stream { server { listen 12345; proxy_pass 127.0.0.1:54321; } } 配置流式代理。

ngx_stream_access_module

用于限制流式连接的模块。

allow 192.168.1.0/24; deny all; 限制访问流式服务的 IP 地址。

ngx_stream_geo_module

用于流式协议中的地理位置相关配置。

geo $geoip_country { default CN; 192.168.1.0/24 US; } 配置流式协议中的地理位置。

ngx_stream_geoip_module

基于 IP 地址的地理位置识别模块,适用于流式协议。

geoip_country /path/to/GeoIP.dat; 基于 IP 地址配置地理位置。

ngx_stream_js_module

用于流式协议中的 JavaScript 支持。

js_include stream_script.js; 配置流式协议中的 JavaScript 文件。

ngx_stream_keyval_module

用于在流式协议中设置键值对变量的模块。

set $stream_key value; 配置流式协议中的键值变量。

ngx_stream_limit_conn_module

用于限制流式连接的模块。

limit_conn_zone $binary_remote_addr zone=conn_limit:10m; 限制流式连接数。

ngx_stream_log_module

用于记录流式协议的日志。

access_log /var/log/nginx/stream_access.log; 配置流式协议的日志。

ngx_stream_map_module

用于流式协议中进行动态映射设置的模块。

map $remote_addr $limit_conn { 192.168.1.1 10; default 5; } 配置流式连接的限制。

ngx_stream_mqtt_preread_module

支持 MQTT 协议预读取的模块。

mqtt_preread on; 启用 MQTT 协议的预读取功能。

ngx_stream_mqtt_filter_module

用于流式协议中的 MQTT 协议过滤功能。

mqtt_filter on; 启用 MQTT 协议的过滤功能。

ngx_stream_pass_module

用于流式代理的模块。

proxy_pass tcp://127.0.0.1:8080; 配置流式代理服务器。

ngx_stream_proxy_protocol_vendor_module

支持 Proxy Protocol 协议的流式模块。

proxy_protocol on; 启用 Proxy Protocol 支持。

ngx_stream_realip_module

用于流式协议获取真实客户端 IP 地址的模块。

real_ip_header X-Real-IP; 配置流式协议获取真实


网站公告

今日签到

点亮在社区的每一天
去签到