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命令平滑重启
相关推荐
蛊明34 分钟前
下载CentOS 10
linux·运维·centos
北京-宏哥38 分钟前
Linux系统安装MySQL5.7(其他版本类似)避坑指南
linux·运维·服务器
Aphelios3801 小时前
Linux 下 VIM 编辑器学习记录:从基础到进阶(下)
java·linux·学习·编辑器·vim
qw9491 小时前
Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复
linux·运维·服务器
丶只有影子1 小时前
【Nacos】从零开始启动Nacos服务(windows/linux)
linux·运维·windows·微服务·springcloud
-SGlow-2 小时前
Linux相关概念和易错知识点(30)(线程互斥、线程同步)
linux·运维·服务器
m0_748236582 小时前
本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面
前端·tcp/ip·flask
茂茂在长安2 小时前
Linux 命令大全完整版(11)
java·linux·运维·服务器·前端·centos
m0_748239333 小时前
Nginx 上安装 SSL 证书并启用 HTTPS 访问
nginx·https·ssl
songbaoxian3 小时前
ElasticSearch
java·linux·elasticsearch