Linux安装Nginx及配置TCP负载均衡

目录

1、安装编译工具及库文件

shell 复制代码
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel pcre-devel

2、下载解压Nginx压缩包

shell 复制代码
wget https://nginx.org/download/nginx-1.18.0.tar.gz

tar -zxvf nginx-1.18.0.tar.gz

3、Ngnix配置Tcp负载均衡

sql 复制代码
[root@Zhn software]# cd nginx-1.18.0
[root@Zhn nginx-1.18.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src
[root@Zhn nginx-1.18.0]# ./configure --with-stream
[root@Zhn nginx-1.18.0]# make && make install

编译完成后,默认安装在了/usr/local/nginx目录。

sql 复制代码
[root@Zhn nginx-1.18.0]# cd /usr/local/nginx/
[root@Zhn nginx]# ls
conf  html  logs  sbin

可执行文件在sbin目录下,配置文件在conf目录下的nginx.conf

4、配置Ngnix的文件

打开conf/ngnix.conf文件
添加红色方框内的配置

逐个解析:

shell 复制代码
upstream MyServer{
        server 127.0.0.1:6000 weight=1 max_fails=3 fail_timeout=30s;
        server 127.0.0.1:6002 weight=1 max_fails=3 fail_timeout=30s;
    }
  
# 表示Nginx负载两台服务器,weight表示权重
# 两台服务器的权重都是1,说明来十个连接时,Nginx会把十个连接平均分发到每台服务器,即每台服务器处理5个连接
# 如果weight=1,weight=2,说明1/3的连接分发到第一台服务器,2/3的连接分发到第二台服务器
# max_fails=3 表示允许最大失败次数为 3,即连续请求失败的最大次数;
# fail_timeout=30s 表示失败超时时间为30秒,在该时间内如果失败次数超过最大失败次数,则会暂时将该服务器标记为不可用。
sql 复制代码
server{
        proxy_connect_timeout 1s;
        listen 8000;
        proxy_pass MyServer;
        tcp_nodelay on;
    }
    
# proxy_connect_timeout 1s;:设置代理服务器连接超时时间为 1 秒,即如果连接后端服务器的时间超过这个设定时间,
# 则会视为连接超时。

# listen 8000;:指示 Nginx 在 8000 端口上监听传入的请求。

# proxy_pass MyServer;:实现了请求的反向代理,将来自客户端的请求转发到上游服务器组 MyServer 中的服务器上。

# tcp_nodelay on;:开启了 TCP 的 nodelay 功能,这个功能可以减少数据传输的延迟,尤其适用于实时性要求较高的连接。

5、Nginx启动

1、首先使用命令查看当前Linux下所有的TCP连接

sql 复制代码
[root@Zhn sbin]# netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:40488         0.0.0.0:*               LISTEN      1724/node           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1406/sshd           
tcp        0      0 127.0.0.1:42438         127.0.0.1:40488         ESTABLISHED 12357/sshd: root@no 
tcp        0      0 127.0.0.1:40488         127.0.0.1:42436         ESTABLISHED 1724/node           
tcp        0     96 192.168.230.132:22      192.168.230.4:49282     ESTABLISHED 12504/sshd: root@pt 
tcp        0      0 127.0.0.1:41616         127.0.0.1:40488         ESTABLISHED 1653/sshd: root@not 
tcp        0      0 192.168.230.132:22      192.168.230.4:50593     ESTABLISHED 1653/sshd: root@not 
tcp        0      0 127.0.0.1:40488         127.0.0.1:41614         ESTABLISHED 1724/node           
tcp        0      0 127.0.0.1:41614         127.0.0.1:40488         ESTABLISHED 1653/sshd: root@not 
tcp        0      0 192.168.230.132:22      192.168.230.4:65205     ESTABLISHED 12357/sshd: root@no 
tcp        0      0 127.0.0.1:40488         127.0.0.1:41616         ESTABLISHED 2036/node           
tcp        0      0 127.0.0.1:40488         127.0.0.1:42438         ESTABLISHED 12417/node          
tcp        0      0 127.0.0.1:42436         127.0.0.1:40488         ESTABLISHED 12357/sshd: root@no 
tcp6       0      0 :::3306                 :::*                    LISTEN      1613/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1406/sshd           
[root@Zhn sbin]# 

可以发现Nginx没有启动

2、启动Nginx

sql 复制代码
[root@Zhn sbin]# ./nginx
[root@Zhn sbin]# netstat -tanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      12536/nginx: master 
tcp        0      0 127.0.0.1:40488         0.0.0.0:*               LISTEN      1724/node           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      12536/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1406/sshd           
tcp        0      0 127.0.0.1:42438         127.0.0.1:40488         ESTABLISHED 12357/sshd: root@no 
tcp        0      0 127.0.0.1:40488         127.0.0.1:42436         ESTABLISHED 1724/node           
tcp        0     96 192.168.230.132:22      192.168.230.4:49282     ESTABLISHED 12504/sshd: root@pt 
tcp        0      0 127.0.0.1:41616         127.0.0.1:40488         ESTABLISHED 1653/sshd: root@not 
tcp        0      0 192.168.230.132:22      192.168.230.4:50593     ESTABLISHED 1653/sshd: root@not 
tcp        0      0 127.0.0.1:40488         127.0.0.1:41614         ESTABLISHED 1724/node           
tcp        0      0 127.0.0.1:41614         127.0.0.1:40488         ESTABLISHED 1653/sshd: root@not 
tcp        0      0 192.168.230.132:22      192.168.230.4:65205     ESTABLISHED 12357/sshd: root@no 
tcp        0      0 127.0.0.1:40488         127.0.0.1:41616         ESTABLISHED 2036/node           
tcp        0      0 127.0.0.1:40488         127.0.0.1:42438         ESTABLISHED 12417/node          
tcp        0      0 127.0.0.1:42436         127.0.0.1:40488         ESTABLISHED 12357/sshd: root@no 
tcp6       0      0 :::3306                 :::*                    LISTEN      1613/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1406/sshd           
[root@Zhn sbin]# 

3、Nginx的其他命令

sql 复制代码
./nginx -s reload   # 重新加载配置文件启动
./nginx -s stop     # 关闭nginx服务器

# 注意:每次修改Nginx配置文件后,需要调用./nginx -s reload命令平滑重启
相关推荐
程序员-Benothing6 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
wdfk_prog6 小时前
LWIP教程 09:从 `tcp_slowtmr()` 到 Fast Retransmit——TCP 超时重传与重复 ACK
服务器·网络·数据库·网络协议·tcp/ip
‎ദ്ദിᵔ.˛.ᵔ₎6 小时前
linux 进程信号 (上)
linux·服务器
Zooproxy全球IP代理6 小时前
住宅IP在AI行业中的技术应用:数据采集基础设施的工程实践
人工智能·网络协议·tcp/ip
15Moonlight6 小时前
Linux网络(02):Socket 编程 UDP
linux·网络·udp
盛世宏博智慧档案6 小时前
一文读懂 PoE+Modbus TCP 温湿度传感器布线规范与故障排查
网络·网络协议·tcp/ip
wuminyu7 小时前
ForkJoinPool窃取线程在扫描其他WorkQueue时的随机采样算法与Phase线程挂起唤醒机制解析
java·linux·c语言·jvm·c++
liulilittle7 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c
DongQiShanRen7 小时前
玄龙(上):TICK 主循环——意识心跳怎么跳
linux·jvm·数据库·人工智能·数据挖掘·rust
骑着蜗牛撵大象3277 小时前
服务下线不再炸:分层关闭、TCP 存活探测与负载均衡排水的落地套路
android·tcp/ip·负载均衡·tcp·高可用·健康检查·优雅关闭