目录
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命令平滑重启