lnmt搭建及负载轮询

Posted liuzhijun666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lnmt搭建及负载轮询相关的知识,希望对你有一定的参考价值。

lnmt服务的搭建及其负载轮询

1、前提条件

准备三台服务器

服务器 ip 部署
服务端 192.168.7.10 mysqlnginx、tomcat
客户端1 192.168.7.11 tomcat9
客户端2 192.168.7.12 tomcat9

三台同时关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld
#  setent 0

2、server端部署

2.1安装nginx

nginx加入systemctl启动脚本:https://files.cnblogs.com/files/liuzhijun666/nginx启动脚本.rar

nginx 下载地址: :http://nginx.org/download/nginx-1.14.0.tar.gz

#  yum -y install pcre-devel openssl openssl-devel gd-devel lrzsz
#  yum -y groups mark install ‘Development Tools‘ 
#  useradd -r -M -s /sbin/nologin nginx
//创建日志目录
# mkdir -p /var/log/nginx
# chown -R nginx.nginx /var/log/nginx
# wget http://nginx.org/download/nginx-1.14.0.tar.gz
# tar -xf nginx-1.14.0.tar.gz
nginx-1.14.0.tar.gz nginx-1.14.0
# pwd
/root/nginx-1.14.0
# ./configure --prefix=/usr/local/nginx 		//编译
--user=nginx --group=nginx  
--with-debug  
--with-http_ssl_module --with-http_realip_module  
--with-http_image_filter_module  
--with-http_gunzip_module  
--with-http_gzip_static_module  
--with-http_stub_status_module  
--http-log-path=/var/log/nginx/access.log  
--error-log-path=/var/log/nginx/error.log
#  make -j $(grep ‘processor‘ /proc/cpuinfo | wc -l) && make install 		//安装
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# cd /usr/local/nginx/sbin/
# ls
nginx 
# cd /etc/init.d
# rz	//上传ngin的启动脚本
# ls
...  nginx .....
# chmod +x nginx
# source nginx	//执行该脚本
# systemctl restart nginx
# ss -antl
State       Recv-Q Send-Q                          Local Address:Port                                         Peer Address:Port              
LISTEN      0      128                                         *:80                                                      *:*                  
LISTEN      0      128                                         *:22                                                      *:*                  
LISTEN      0      100                                 127.0.0.1:25                                                      *:*                  
LISTEN      0      128                                        :::22                                                     :::*                  
LISTEN      0      100                                       ::1:25                                                     :::*   

3.2安装mysql

下载地址: https://dev.mysql.com/downloads/mysql/

# yum -y install ncurses-devel openssl-devel openssl cmake mariadbdevel
# tar xf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz ?-C /usr/local/ 
# pwd
/usr/src
# cd /usr/local
# ln -sv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql
# groupadd -r mysql    //mysql创建组和用户
# useradd -M -s /sbin/nologin -g mysql mysql
# chown -R mysql.mysql mysql
# echo "export PATH=/usr/local/mysql/bin/:$PATH" > /etc/profile.d/mysql.sh       //环境变量
# source /etc/profile.d/mysql.sh 
# mkdir /opt/data		//生成数据库目录
# chown -R mysql.mysql /opt/data/
# mysqld --initialize --user=mysql --datadir=/opt/data/  	//初始化数据库
2020-04-26T13:28:47.194209Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-04-26T13:28:47.739448Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-04-26T13:28:47.878674Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-04-26T13:28:48.064606Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: dc2dc2c2-87c1-11ea-b320-000c29361d6b.
2020-04-26T13:28:48.065569Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed‘ cannot be opened.
2020-04-26T13:28:48.066537Z 1 [Note] A temporary password is generated for root@localhost: ,8wypuC8Swht 	//密码
# cd
# echo ",8wypuC8Swht" > passwd.txt  //保存密码
# vim /etc/my.cnf			//编写配置文件
# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql 
datadir = /opt/data 
socket = /tmp/mysql.sock 
port = 3306 
pid-file = /opt/data/mysql.pid 
user = mysql 
skip-name-resolve
# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
#  sed -ri ‘s#^(datadir=).*#1/opt/data#g‘ /etc/init.d/mysqld
#  sed -ri ‘s#^(basedir=).*#1/usr/local/mysql#g‘ /etc/init.d/mysqld 
# service mysqld start		//启动
# ss -antl
State       Recv-Q Send-Q                          Local Address:Port                                         Peer Address:Port              
LISTEN      0      128                                         *:80                                                      *:*                  
LISTEN      0      128                                         *:22                                                      *:*                  
LISTEN      0      100                                 127.0.0.1:25                                                      *:*                  
LISTEN      0      128                                        :::22                                                     :::*                  
LISTEN      0      100                                       ::1:25                                                     :::*                       
LISTEN     0      80                    					:::3306         #mysql端口号

3、部署tomcat

tomcat9 下载地址:

# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel  	//下载java
# wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz
# ls
apache-tomcat-9.0.36.tar.gz
# tar -xf apache-tomcat-9.0.36.tar.gz -C /usr/local
# echo "export PATH=/usr/local/apache-tomcat-9.0.33/bin:$PATH" > /etc/profile.d/tomcat.sh  //环境变量
# startup.sh 
# ss -antl
State       Recv-Q Send-Q               Local Address:Port                              Peer Address:Port              
LISTEN      0      128                              *:80                                           *:*                  
LISTEN      0      128                              *:22                                           *:*                  
LISTEN      0      100                      127.0.0.1:25                                           *:*                  
LISTEN      0      100                             :::8080                                        :::*                  
LISTEN      0      128                             :::22                                          :::*                  
LISTEN      0      100                            ::1:25                                          :::*                  
LISTEN      0      1                 ::ffff:127.0.0.1:8005                                        :::*                  
LISTEN      0      80                              :::3306                                        :::*    

3、实现负载均衡

客户端1:

#  cd /usr/local/apache-tomcat-9.0.36/webapps/
# mkdir test
# cd test
# vim index.jsp
<html>
<head>
<title>第一个</title>
</head>
<body>
1111
<body>
</html>

客户端2:

#  cd /usr/local/apache-tomcat-9.0.36/webapps/
# mkdir test
# cd test
# vim index.jsp
<html>
<head>
<title>第二个</title>
</head>
<body>
2222
<body>
</html>

服务端

修改配置文件:/usr/local/nginx/conf/nginx.conf

......
#添加
upstream www{
           server 192.168.7.12:8080;		#客户端2
           server 192.168.7.11:8080;		#客户端1
	   
        }
server {
		listen       80;					# 端口
         server_name  xxx.example.com;		#设置域名
	    access_log  logs/host.access.log;	#指定日志文件
 location  ~*/test/*.(do|jsp) {							#两个客户端的test
         proxy_pass   http://www;		#www要与upstream 一样
	    index index.html index.htm;
   }

}
......

效果:
技术图片

技术图片


以上是关于lnmt搭建及负载轮询的主要内容,如果未能解决你的问题,请参考以下文章

LNMT架构部署:Linux+Nginx+Mysql+Tomcat(负载均衡,动静分离)

Linux中详细搭建lnmt架构

LNMT群集基于Redis实现Session共享

Ribbon 负载均衡机制(自定义负载均衡规则)

Nginx负载均衡中常见的算法及原理

LVS负载均衡地址转换使用轮询算法实验(结尾代码随记)