您的位置:首页 > 健康 > 养生 > 淘客免费网站建设_手机网站设计公司哪家专业_安徽seo推广_福州seo公司

淘客免费网站建设_手机网站设计公司哪家专业_安徽seo推广_福州seo公司

2025/4/19 4:06:28 来源:https://blog.csdn.net/qq_39071254/article/details/145064513  浏览:    关键词:淘客免费网站建设_手机网站设计公司哪家专业_安徽seo推广_福州seo公司
淘客免费网站建设_手机网站设计公司哪家专业_安徽seo推广_福州seo公司

要在 Ubuntu 上对 Nginx 进行源码编译并包含 TCP 负载均衡模块(即 Stream 模块),请按照以下步骤操作:

1. 安装编译所需的依赖

首先,确保系统的软件包列表是最新的,并安装编译 Nginx 所需的基本工具和库:

sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget
  • build-essential: 包含编译工具如 gccmake
  • libpcre3 & libpcre3-dev: 正则表达式库,Nginx 用于处理配置中的正则表达式。
  • zlib1g & zlib1g-dev: 压缩库,支持 Gzip 压缩。
  • libssl-dev: OpenSSL 库,支持 HTTPS 和其他加密功能。
  • wget: 下载工具,用于获取 Nginx 源码。

2. 下载 Nginx 源码

访问 Nginx 官方下载页面 获取最新的稳定版本。以下示例假设下载的是版本 1.24.0,请根据实际情况替换版本号:

cd /usr/local/src
sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz
sudo tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

3. 配置编译选项

在编译 Nginx 时,需要启用 stream 模块以支持 TCP 负载均衡。使用 ./configure 脚本并添加相应的选项:

sudo ./configure \--sbin-path=/usr/local/nginx/nginx \--conf-path=/usr/local/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--with-stream \--with-stream_ssl_module \--with-http_ssl_module \--with-pcre \--with-zlib=/usr/local/src/nginx-1.24.0

选项说明:

  • --sbin-path:指定 Nginx 可执行文件的安装路径。
  • --conf-path:指定主配置文件的路径。
  • --error-log-path--http-log-path:指定错误日志和访问日志的路径。
  • --with-stream:启用 Stream 模块,支持 TCP/UDP 流量的处理。
  • --with-stream_ssl_module:启用 Stream 模块的 SSL 支持。
  • --with-http_ssl_module:启用 HTTP 模块的 SSL 支持。
  • --with-pcre:启用 PCRE 库支持,用于正则表达式。
  • --with-zlib:指定 zlib 库的路径,支持 Gzip 压缩。

注意: 如果需要添加额外的第三方模块,可以使用 --add-module=/path/to/module 选项。

4. 编译并安装 Nginx

完成配置后,运行以下命令进行编译和安装:

sudo make
sudo make install

说明:

  • make:编译源码。
  • make install:将编译好的二进制文件和相关文件安装到指定路径。

5. 配置 Nginx 使用 TCP 负载均衡

安装完成后,需要编辑 Nginx 的配置文件以设置 TCP 负载均衡。默认配置文件路径为 /usr/local/nginx/nginx.conf

使用文本编辑器打开配置文件:

sudo nano /usr/local/nginx/nginx.conf

在文件末尾添加 stream 块,例如:

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;# 其他 HTTP 配置
}stream {upstream backend_tcp {server 192.168.1.100:12345;server 192.168.1.101:12345;}server {listen 3306;  # 监听的端口,如 MySQL 默认端口proxy_pass backend_tcp;}
}

配置说明:

  • stream 块用于定义 TCP/UDP 流量的处理。
  • upstream 定义了后端服务器的地址和端口,Nginx 将在这些服务器之间进行负载均衡。
  • server 块中 listen 指定了 Nginx 监听的端口,proxy_pass 指定了要转发到的 upstream。

保存并关闭文件(在 nano 中按 Ctrl + O 保存,Ctrl + X 退出)。

6. 启动 Nginx

使用以下命令启动 Nginx:

sudo /usr/local/nginx/nginx

验证 Nginx 是否启动成功:

sudo /usr/local/nginx/nginx -t

如果配置正确,将看到类似如下输出:

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

查看 Nginx 进程是否在运行:

ps aux | grep nginx

7. 设置 Nginx 开机自启(可选)

为了让 Nginx 在系统启动时自动运行,可以创建一个 systemd 服务文件。

创建并编辑服务文件:

sudo nano /etc/systemd/system/nginx.service

添加以下内容:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/nginx
ExecReload=/usr/local/nginx/nginx -s reload
ExecStop=/usr/local/nginx/nginx -s quit
PIDFile=/usr/local/nginx/nginx.pid
PrivateTmp=true[Install]
WantedBy=multi-user.target

保存并关闭文件后,执行以下命令以启用并启动 Nginx 服务:

sudo systemctl daemon-reload
sudo systemctl enable nginx
sudo systemctl start nginx

验证服务状态:

sudo systemctl status nginx

8. 验证 TCP 负载均衡

确保后端服务器在指定的端口(如 12345)上运行,并且防火墙允许相应的流量。可以使用 telnet 或其他工具测试负载均衡是否正常工作。

示例测试:

telnet your_nginx_server_ip 3306

连接应会被分配到后端的某一台服务器。你可以多次连接以确认负载均衡策略(如轮询)是否按预期工作。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com