1.Nginx介绍
支持高达50000个并发连接数的响应
拥有强大的静态资源处理能力
运行稳定
内存、CPU等系统资源消耗非常低
目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力
2.Nginx动静分离原理
通过location字段进行匹配
如果是.html结尾的文件会被发往本地处理
如果是.jsp结尾的会被发往tomcat
3.tomcat重要目录
目录 | 作用 |
---|---|
bin | 存放启动和关闭Tomcat脚本 |
conf | 存放Tomcat不同的配置文件 |
doc | 存放Tomcat文档 |
lib | 存放Tomcat运行需要的库文件 |
logs | 存放Tomcat执行时的log文件 |
src | 存放Tomcat的源代码 |
webapps | Tomcat的主要web发布目录 |
work | 存放jsp编译后产生的class文件 |
1.安装nfs-utils、rpcbind软件包
yum -y install nfs-utils rpcbind
2.创建共享目录
mkdir /opt/tomcat1
mkdir /opt/tomcat2
编辑一个javascript的测试网页,并上传图片
vim /opt/tomcat1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP web1 test</title>
</head>
<body>
<% out.println("Welcome to test site");%>
<div>动态页面</div><br/><img src="web1.jpg" />
</body>
</html>
vim /opt/tomcat2/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP web2 test</title>
</head>
<body>
<% out.println("Welcome to test2 site");%>
<div>动态页面</div><br/><img src="web2.jpg" />
</body>
</html>
3.共享目录
vi /etc/exports
/opt/tomcat1 192.168.2.16(ro)
/opt/tomcat2 192.168.2.17(ro)
查看挂载
showmount -e
tar xf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
2.配置环境变量
vi /etc/profile
添加
export JAVA_HOME=/usr/local/java
export JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib
执行,并查看
source /etc/profile
echo $PATH
测试
查看版本
java -version
编辑一个.java文件测试
vim HelloWorld.java
public class HelloWorld {
public static void main (String[] args) {
System.out.println("helloworld!");
}
}
javac HelloWorld.java
java HelloWorld
1.解压、移动
tar xf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat8
2.建立软连接
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
ln -s /usr/local/tomcat8/conf/server.xml /etc/tomcat.xml
链接后
tomcatup
:开启tomcat
tomcatdown
:关闭tomcat
/etc/tomcat.xml
:配置文件
开启tomcat
tomcatup
检查是否开启
netstat -anpt | grep java
1.创建web目录
mkdir -p /tomcat/web
2.将nfs挂载到本地目录
tomcat1
mount 192.168.2.18:/opt/tomcat1 /tomcat/web
tomcat2
mount 192.168.2.18:/opt/tomcat2 /tomcat/web
3.设置网站根目录
编辑配置文件
vi /etc/tomcat.xml
4.访问测试
重启
curl http://localhost:8080
上传nginx-1.12.2.tar.gz、keepalived-2.0.13.tar.gz
yum 安装依赖包
yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel
创建一个不可登陆账户给ngxin使用
useradd -M -s /sbin/nologin nginx
解压
tar xf nginx-1.12.2.tar.gz
cd nginx-1.12.2/
配置内容
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
编译安装
make && make install -j 8
建立nginx软连接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx配置文件软连接
ln -s /usr/local/nginx/conf/nginx.conf /etc/
检查nginx是都可以正常运行
nginx -t
查看nginx状态
netstat -anpt | grep nginx
没有任何提示就是没启动
启动nginx
nginx
重启nginx
killall -1 nginx
关闭nginx
killall -3 nginx
添加
upstream服务池
upstream tomcat_server {
server 192.168.2.16:8080 weight=1;
节点 ip地址 端口号 权重
server 192.168.2.17:8080 weight=1;
}
location ~ \.jsp$ {
proxy_pass http://tomcat_server;
} 服务地址池名
jsp里面链接的图片要上传到nginx根目录,如果不上传图片会出现加载不出来的情况
xftp上传keepalived文件,解压
tar xf keepalived-2.0.13.tar.gz
安装编译工具与插件
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
切换目录、编译安装
cd keepalived-2.0.13/
./configure --prefix=/
make && make install
加入系统管理服务、设为开机自启
cp keepalived/etc/init.d/keepalived /etc/init.d/
systemctl enable keepalived.service
编辑主调度器配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Nginx_01
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100
}
}
}
编辑备用调度器配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id Nginx_02
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 140
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.100
}
}
重启
ip addr 测试
主路调度器故障测试,禁用网卡,或者是禁用keepalived
脚本的作用就是在nginx服务出问题的时候,关闭keepalived
假设主调度器仅仅是Nginx服务出现问题,其它(keepalived)一切正常,那么VIP就不会跳到备用调度器上,备用调度器就无法启用,就会出现下面情况
! Configuration File for keepalived
global_defs {
router_id Nginx_01
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.2.100
}
}
编辑脚本
vi /etc/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
killall -3 nginx
nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
脚本的作用就是检测nginx的状态,假如关闭,会重新开启,再次检测,如果不行就关闭keepalived