内容简介:通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善web站点架构。nginx是一款优秀的http服务器软件,它能够支持多达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存,CPU等系统资源消耗非常低。目前有很多大型网站都应用nginx作为后端网站程序的反向代理及负载均衡。本案例我们将已nginx作为负载均衡器,反向代理,tomcat作为节点服务器。
- 概述
通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善web站点架构。
nginx是一款优秀的http服务器软件,它能够支持多达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存,CPU等系统资源消耗非常低。目前有很多大型网站都应用nginx作为后端网站程序的反向代理及负载均衡。
本案例我们将已nginx作为负载均衡器,反向代理,tomcat作为节点服务器。
- 案例环境
主机 | IP地址 |
---|---|
nginx服务器 | 192.168.177.132 |
tomcat服务器1 | 192.168.177.145 |
tomcat服务器2 | 192.168.177.135 |
tomcat服务器
安装jdk(1.8版本)
# tar xf apache-tomcat-8.5.23.tar.gz /opt # tar xf jdk-8u144-linux-x64.tar.gz /opt //解压安装包
# mv apache-tomcat-8.5.23/ /usr/local/tomcat8 # mv jdk1.8.0_144/ /usr/local/java //便于管理
# vim /etc/profile //设置环境变量 export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export PATH=$PATH:/usr/local/java/bin export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib # source /etc/profile
# java -version //查看 java 版本信息 java 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
# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup # ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown //放在/usr/bin下便于识别命令
# tomcatup //开启服务 # netstat -anpt | grep 8080 //查看tomcat端口是否开启 # http://192.168.177.145:8080/ //测试默认测试页是否正常显示(节点) # vim /usr/local/tomcat8/webapps/ROOT/index.jsp //修改默认网页内容(站点) <h1>this is 145!!!</h1>
==注==:两台tomcat服务器配置完全一样
nginx服务器
手工编译安装
# tar zxvf nginx-1.12.0.tar.gz -C /opt # yum install pcre-devel zlib-devel gcc gcc-c++ -y //安装环境包 # useradd -M -s /sbin/nologin nginx //创建管理nginx的用户 # cd /opt/nginx-1.12.0/ ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ //指定运行的用户 --group=nginx \ //指定运行的组 --with-http_stub_status_module //启用统计状态 # make && make install # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //让系统识别命令 # nginx -t //验证语法
编写便于service管理的脚本
# cd /etc/init.d/ vim nginx #!/bin/bash # chkconfig: - 99 20 # description: Nginx Service Control Script PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in start) $PROG ;; stop) kill -s QUIT $(cat $PIDF) ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1 esac exit 0 # chmod +x /etc/init.d/nginx //执行权限 # chkconfig --add nginx # chkconfig --level 35 nginx on # service nginx stop # netstat -ntap | grep 80 # service nginx start # netstat -ntap | grep 80
修改配置文件
# vim /usr/local/nginx/conf/nginx.conf #keepalive_timeout 0; keepalive_timeout 65; #gzip on; 添加: upstream tomcat_server { #添加 server 192.168.177.145:8080 weight=1; //权重相同,页面会反复在以下两个页面间来回切换 server 192.168.177.135:8080 weight=1; } server { listen 80; .....省略 location / { # root html; # index index.html index.htm; proxy_pass http://tomcat_server; //添加一行 ,把nginx的默认站点通过 proxy_pass方法代理到设定好的tomcat_server负载均衡服务器上 } # service nginx restart //启用nginx服务//
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 3分钟了解负载均衡,分清二层负载均衡和三层负载均衡
- 负载均衡策略之有限负载一致性哈希
- 负载均衡之软硬件负载均衡的优缺点
- 医疗信息系统高负载如何应对?找准东华负载均衡
- 性能大比拼-真实世界工作负载vs实验室综合工作负载
- 负载均衡有多神密?来研究下ShareWAF的开源负载均衡!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP for the World Wide Web, Second Edition (Visual QuickStart Gu
Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99
So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!