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命令平滑重启
相关推荐
傲世仙尊44 分钟前
IO流起步-从fopen到文件描述符fd
linux
Rabitebla1 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
人工智能培训1 小时前
大语言模型:从语言理解到通用智能的跃迁
linux·服务器·前端·人工智能
顶点多余1 小时前
9.20 知识点查漏补缺
linux·面试·职场和发展
阿明61 小时前
Linux进程【Linux】
linux·运维·服务器
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_resampler_update调用流程与实战(三十)
linux·运维·服务器·gstreamer音视频·音视频进阶
qetfw2 小时前
Linux tcpdump 抓包实战:网卡、主机、端口过滤与 PCAP 分析
linux·tcpdump
pilifeng12 小时前
Ubuntu Linux 目录结构详解
linux·ubuntu
电棍2332 小时前
ubuntu网卡失效
linux
律宏阔2 小时前
VMware 能识别 USB 设备,但无法连接(灰色)
linux