linux安装配置nginx

sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
cd /usr/local/src/
sudo wget http://nginx.org/download/nginx-1.25.2.tar.gz
sudo tar -zxvf nginx-1.25.2.tar.gz
cd ./nginx-1.25.2/
sudo ./configure --with-stream \
                 --with-http_ssl_module
sudo make
sudo make install
cd /usr/local/nginx/conf/
sudo nano nginx.conf

在nginx.conf输入以下内容以配置tcp负载均衡

stream{ 
    upstream ClusterServer {
        server 127.0.0.1:9527 weight=1 max_fails=3 fail_timeout=30s;
        server 127.0.0.1:9528 weight=1 max_fails=3 fail_timeout=30s;
    }
    server {
        proxy_connect_timeout 1s;
        listen 9000;
        proxy_pass ClusterServer;
        tcp_nodelay on;
    }  
}
  • upstream:定义了一个后端服务器组,名为 ClusterServer,用于负载均衡。包括两台服务器server 127.0.0.1:9527server 127.0.0.1:9528
  • weight=1:指定该服务器的权重。权重越大,Nginx 选择该服务器的概率就越高。在这里,两台服务器的权重相同,意味着轮询分配。
  • max_fails=3 fail_timeout=30s: 在心跳机制中,如果一个服务器在 30 秒内失败了 3 次(根据 max_fails),则它将被视为不可用,并在 30 秒内该服务器不会再被选中处理请求。每30s都会尝试测试。
  • proxy_connect_timeout 1s:设置nginx代理连接到后端服务器的超时时间。即 Nginx 在连接后端服务器(如 127.0.0.1:9527 或 127.0.0.1:9528)时,若超过 1 秒无法建立连接,则认为连接超时。
  • listen 9000:指定 Nginx 监听的端口。客户端发起的 TCP 连接将通过 localhost:9000 连接到 Nginx,随后由 Nginx 将流量代理到后端服务器。
  • proxy_pass ClusterServer:将客户端连接通过nginx代理到定义在 upstream ClusterServer 中的服务器组。
  • tcp_nodelay on:启用或禁用 tcp_nodelay 选项。启用后,Nginx 将关闭 Nagle 算法,保证数据包能立即发送而不等待。这个选项通常用于降低延迟,适用于实时应用场景。
    在这里插入图片描述
cd /usr/local/nginx/sbin/
sudo ./nginx # 启动nginx
ps aux | grep nginx # 查看nginx启动进程
sudo ./nginx -s reload # 重新加载nginx.conf
sudo ./nginx -s stop # 停止nginx

在这里插入图片描述
测试
(1)开启两个服务器127.0.0.1:9527和127.0.0.1:9528,客户端连接到nginx代理127.0.0.1:9000,9527服务器响应。
在这里插入图片描述(2)再将一个客户端连接到nginx代理,9528服务器响应。接下来再开一个客户端,9527服务器响应了。确实是以Round-Robin(轮询)方式进行负载均衡,和配置预想一致。
在这里插入图片描述在这里插入图片描述
参考
Bilibili-C++项目-集群聊天服务器

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值