设为首页 收藏本站
查看: 738|回复: 0

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

[复制链接]

尚未签到

发表于 2018-12-6 13:11:30 | 显示全部楼层 |阅读模式
  环境描述:虚拟机准备两台,一台作为nginx服务器+mysql服务器,IP为:192.168.55.129;另外一台作为2台Tomcat服务器,IP为:192.168.55.130。客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端;如果为动态内容,则由nginx反代至后端的Tomcat服务器。

在IP为192.168.55.129的服务器上安装和配置nginx关闭防火墙和selinux
[root@yanyinglai ~]# systemctl stop firewalld
[root@yanyinglai ~]# systemctl disable firewalld
[root@yanyinglai ~]# setenforce 0
[root@yanyinglai ~]#  sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
创建系统用户nginx
[root@yanyinglai ~]#  useradd -r -M -s /sbin/nologin nginx
安装依赖环境
[root@yanyinglai ~]# yum -y install pcre-devel openssl openssl-devel gd-devel
[root@yanyinglai ~]# yum -y groups install 'Development Tools'
创建日志存放目录
[root@yanyinglai ~]# mkdir -p /var/log/nginx
[root@yanyinglai ~]# chown -R nginx.nginx /var/log/nginx/
下载nginx
[root@yanyinglai ~]# cd /usr/src/
[root@yanyinglai src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz
编译安装
[root@yanyinglai ~]# cd /usr/src/
[root@yanyinglai src]# ls
debug  kernels  nginx-1.14.0.tar.gz
[root@yanyinglai src]# tar xf nginx-1.14.0.tar.gz
[root@yanyinglai src]# cd nginx-1.14.0
[root@yanyinglai nginx-1.14.0]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[root@yanyinglai 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
[root@yxr nginx-1.12.0]# make -j 2 && make install
nginx安装后配置配置环境变量
[root@yanyinglai nginx-1.14.0]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@yanyinglai nginx-1.14.0]#  . /etc/profile.d/nginx.sh
启动nginx
[root@yanyinglai nginx-1.14.0]# nginx
[root@yanyinglai nginx-1.14.0]# 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                 :::*                  
在IP为192.168.55.129上安装mysql
安装依赖包
[root@yanyinglai ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel
创建用户和组
[root@yanyinglai ~]# groupadd -r -g 306 mysql
[root@yanyinglai ~]# useradd -M -s /sbin/nologin -g 306 -u 306 mysql
下载二进制格式的mysql软件包
[root@yanyinglai ~]# cd /usr/src/
[root@yanyinglai src]# wget https://downloads.mysql.com/archives/get/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
解压软件至/usr/local
[root@yanyinglai src]#  tar xf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@yanyinglai src]# cd /usr/local/
[root@yanyinglai local]# ls
bin    include  libexec                              sbin
etc    lib      mysql-5.7.22-linux-glibc2.12-x86_64  share
games  lib64    nginx                                src
[root@yanyinglai local]# ln -sv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql
"mysql" -> "mysql-5.7.22-linux-glibc2.12-x86_64/"
[root@yanyinglai local]# ll
总用量 0
drwxr-xr-x.  2 root root   6 11月  5 2016 bin
drwxr-xr-x.  2 root root   6 11月  5 2016 etc
drwxr-xr-x.  2 root root   6 11月  5 2016 games
drwxr-xr-x.  2 root root   6 11月  5 2016 include
drwxr-xr-x.  2 root root   6 11月  5 2016 lib
drwxr-xr-x.  2 root root   6 11月  5 2016 lib64
drwxr-xr-x.  2 root root   6 11月  5 2016 libexec
lrwxrwxrwx.  1 root root  36 9月   6 17:30 mysql -> mysql-5.7.22-linux-glibc2.12-x86_64/
drwxr-xr-x.  9 root root 129 9月   6 17:28 mysql-5.7.22-linux-glibc2.12-x86_64
drwxr-xr-x. 11 root root 151 9月   6 17:08 nginx
drwxr-xr-x.  2 root root   6 11月  5 2016 sbin
drwxr-xr-x.  5 root root  49 9月   3 23:02 share
drwxr-xr-x.  2 root root   6 11月  5 2016 src
修改目录/usr/local/mysql的属主属组
[root@yanyinglai local]# chown -R mysql.mysql /usr/local/mysql
[root@yanyinglai local]# ll /usr/local/mysql -d
lrwxrwxrwx. 1 mysql mysql 36 9月   6 17:30 /usr/local/mysql -> mysql-5.7.22-linux-glibc2.12-x86_64/
添加环境变量
[root@yanyinglai local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@yanyinglai local]# . /etc/profile.d/mysql.sh
[root@yanyinglai local]#  echo $PATH
/usr/local/mysql/bin:/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
建立数据存放目录
[root@yanyinglai local]# mkdir /opt/data
[root@yanyinglai local]# chown -R mysql.mysql /opt/data/
[root@yanyinglai local]#  ll /opt/
总用量 0
drwxr-xr-x. 2 mysql mysql 6 9月   6 17:34 data
初始化数据库
[root@yanyinglai local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
配置mysql
[root@yanyinglai local]# ln -sv /usr/local/mysql/include/ /usr/local/include/mysql
"/usr/local/include/mysql" -> "/usr/local/mysql/include/"
[root@yanyinglai local]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@yanyinglai local]#  ldconfig -v
生成配置文件
[root@yanyinglai local]# cat > /etc/my.cnf  basedir = /usr/local/mysql
> datadir = /opt/data
> socket  = /tmp/mysql.sock
> port = 3306
> pid-file = /opt/data/mysql.pid
> user = mysql
> skip-name-resolve
> EOF
配置服务启动脚本
[root@yanyinglai local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@yanyinglai local]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@yanyinglai local]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld
启动mysql
root@yanyinglai local]# service mysqld start
Starting MySQL.Logging to '/opt/data/yanyinglai.err'.
... SUCCESS!
[root@yanyinglai local]# ps -ef | grep mysql
root      42077      1  0 17:57 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/opt/data --pid-file=/opt/data/mysql.pid
mysql     42255  42077 15 17:57 pts/2    00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/opt/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=yanyinglai.err --pid-file=/opt/data/mysql.pid --socket=/tmp/mysql.sock --port=3306
root      42291   4672  0 17:57 pts/2    00:00:00 grep --color=auto mysql
[root@yanyinglai local]# 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               :::*                  
修改密码,使用临时密码登录
[root@yanyinglai local]# mysql -uroot -p
Enter password:
mysql> set password = password('yanyinglai123');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> exit
Bye
在192.168.55.130这台虚拟机配置两台tomcat项目部署
关闭防火墙和selinux
[root@yanyinglai ~]#
[root@yanyinglai ~]# systemctl stop firewalld
[root@yanyinglai ~]# systemctl disable firewalld
[root@yanyinglai ~]#  setenforce 0
[root@yanyinglai ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
Java环境安装
//安装jdk环境
[root@yanyinglai ~]#  yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
[root@yanyinglai ~]#  java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
tomcat部署
//下载tomcat
[root@yanyinglai ~]# cd /usr/src/
[root@yanyinglai src]#  wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz
//创建tomcat存放目录
[root@yanyinglai src]# cd /usr/local/
[root@yanyinglai local]# mkdir tomacat{1,2}
[root@yanyinglai local]# ls
bin  games    lib    libexec  sbin   src       tomacat2
etc  include  lib64  nginx    share  tomacat1
//将tomcat解压存放目录
[root@yanyinglai local]# cd /usr/src/
[root@yanyinglai src]# ls
apache-tomcat-9.0.8.tar.gz  debug  kernels
[root@yanyinglai src]# tar xf apache-tomcat-9.0.8.tar.gz -C /usr/local/tomacat1
[root@yanyinglai src]# tar xf apache-tomcat-9.0.8.tar.gz -C /usr/local/tomacat2
//创建软连接
[root@yanyinglai src]# cd /usr/local/tomacat1
[root@yanyinglai tomacat1]# ln -s apache-tomcat-9.0.8/ tomcat1
[root@yanyinglai tomacat1]# ll
总用量 0
drwxr-xr-x. 9 root root 160 9月   5 21:52 apache-tomcat-9.0.8
lrwxrwxrwx. 1 root root  20 9月   5 21:54 tomcat1 -> apache-tomcat-9.0.8/
[root@yanyinglai tomacat1]# cd /usr/local/tomacat2
[root@yanyinglai tomacat2]# ln -s apache-tomcat-9.0.8/ tomcat2
[root@yanyinglai tomacat2]# ll
总用量 0
drwxr-xr-x. 9 root root 160 9月   5 21:52 apache-tomcat-9.0.8
lrwxrwxrwx. 1 root root  20 9月   5 21:55 tomcat2-> apache-tomcat-9.0.8/
创建测试目录并创建测试文件
[root@yanyinglai ~]#  mkdir /usr/local/tomacat1/tomcat1/webapps/test
[root@yanyinglai ~]# mkdir /usr/local/tomacat2/tomcat2/webapps/test
[root@yanyinglai ~]# cd /usr/local/tomacat1/tomcat1/webapps/test
[root@yanyinglai test]# vi index.jsp
[root@yanyinglai test]# cat index.jsp


test page





[root@yanyinglai test]# cd /usr/local/tomacat2/tomcat2/webapps/test
[root@yanyinglai test]# vi index.jsp
[root@yanyinglai test]# cat index.jsp


test page





//修改tomcat2的端口,否则端口起冲突。配置文件为:server.xml
[root@yanyinglai ~]# cd /usr/local/tomacat2/tomcat2/
[root@yanyinglai tomcat2]# ls
bin   lib      logs    RELEASE-NOTES  temp     work
conf  LICENSE  NOTICE  RUNNING.txt    webapps
[root@yanyinglai tomcat2]# cd conf/
[root@yanyinglai conf]# ls
catalina.policy       jaspic-providers.xsd  tomcat-users.xsd
catalina.properties   logging.properties    web.xml
context.xml           server.xml
jaspic-providers.xml  tomcat-users.xml
[root@yanyinglai conf]# vi server.xml
[root@yanyinglai conf]# /usr/local//tomacat1/tomcat1/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomacat1/tomcat1
Using CATALINA_HOME:   /usr/local/tomacat1/tomcat1
Using CATALINA_TMPDIR: /usr/local/tomacat1/tomcat1/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomacat1/tomcat1/bin/bootstrap.jar:/usr/local/tomacat1/tomcat1/bin/tomcat-juli.jar
Tomcat started.
[root@yanyinglai conf]# /usr/local//tomacat2/tomcat2/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomacat2/tomcat2
Using CATALINA_HOME:   /usr/local/tomacat2/tomcat2
Using CATALINA_TMPDIR: /usr/local/tomacat2/tomcat2/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomacat2/tomcat2/bin/bootstrap.jar:/usr/local/tomacat2/tomcat2/bin/tomcat-juli.jar
Tomcat started.
  //输入192.168.55.130:8080 访问
http://i2.运维网.com/images/blog/201809/06/c56e8f3ae735b3490e4c61b07bac2b8f.png
  //输入192.168.55.130:8080/test 访问
http://i2.运维网.com/images/blog/201809/06/654ea574bb9bcdb1ab0a7a27430c9b33.png
//第二台tomcat
//输入192.168.55.130:8081访问
http://i2.运维网.com/images/blog/201809/06/83b51f79b2c4cc0eb815a171404f118a.png
http://i2.运维网.com/images/blog/201809/06/23453c7ae0b2a66742bf012180ea77b2.png

//在主机192.168.55.129上搭建nginx使用nginx实现负载均衡,修改配置文件配置nginx实现动静分离
[root@yanyinglai ~]# vim /usr/local/nginx/conf/nginx.conf
upstream web {
server 192.168.55.130:8080;
server 192.168.55.130:8081;
}
定义好upstream后,需要在server段内添加如下内容
location ~* \.(do|jsp)$ {
proxy_pass http://web;
}
location ~* tomcat\.(png|css)$ {
proxy_pass http://web;
}
location / {
root   html;
index index.html index.htm;
}
修改完配置文件检查语法错误,并重启服务
[root@yanyinglai ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@yanyinglai ~]# nginx -s reload
  静态资源访问nginx
//输入192.168.56.129访问
http://i2.运维网.com/images/blog/201809/06/7281de1c62bd16a7eadde9593264f41f.png
  //动态资源访问tomcat
http://i2.运维网.com/images/blog/201809/06/e9ebfdc290a8d57d8568a619cc308c28.png
http://i2.运维网.com/images/blog/201809/06/e0f0b7a6cd794e946786b0c95dd8af70.png
刷新一下
http://i2.运维网.com/images/blog/201809/06/cd63673b5e24409b3657a231bd4990c7.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-644015-1-1.html 上篇帖子: Myeclipse10配置struts2时,tomcat7在myeclipse中启动不了 下篇帖子: Myeclipse8.5编译后的项目无法在tomcat5.5下正常启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表