共计 3460 个字符,预计需要花费 9 分钟才能阅读完成。
- 概述
通常情况下,一个 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 服务 //
下面关于 Nginx 的文章您也可能喜欢,不妨参考下:
CentOS 7 下 Nginx 服务器的安装配置 https://www.linuxidc.com/Linux/2017-04/142986.htm
CentOS 上安装 Nginx 服务器实现虚拟主机和域名重定向 https://www.linuxidc.com/Linux/2017-04/142642.htm
CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)https://www.linuxidc.com/Linux/2017-04/142880.htm
Linux 下安装 PHP 环境并配置 Nginx 支持 php-fpm 模块 https://www.linuxidc.com/Linux/2017-05/144333.htm
Nginx 服务的 SSL 认证和 htpasswd 认证 https://www.linuxidc.com/Linux/2017-04/142478.htm
Ubuntu 16.04 上启用加密安全的 Nginx Web 服务器 https://www.linuxidc.com/Linux/2017-07/145522.htm
Linux 中安装配置 Nginx 及参数详解 https://www.linuxidc.com/Linux/2017-05/143853.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 https://www.linuxidc.com/Linux/2014-07/104686.htm
CentOS 7.2 下 Nginx+PHP+MySQL+Memcache 缓存服务器安装配置 https://www.linuxidc.com/Linux/2017-03/142168.htm
使用 Nginx+Docker 配置 HTTPS 负载均衡 https://www.linuxidc.com/Linux/2018-06/152855.htm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
: