Nginx调度器&Tomcat 动静分离

------------------------------Nginx调度器&Tomcat 动静分离
########动静分离配置
------------------------Nginx服务器
[root@tomcat02 ~]# mount.cifs //192.168.1.150/qq-Download /mnt
//cifs是Common Internet File System,通用internet文件系统 ,简单来说就是用来通过网络进行文件的读写、共享等功能。
Password for root@//192.168.1.150/qq-Download:  ******
[root@tomcat02 mnt]# df -TH

1.在官网获得nginx软件包,前面在nginx的模块解析中有提到,解压
cd /mnt
tar -zxvf nginx-1.12.0.tar.gz -C /usr/local/

2.安装相关软件包
systemctl stop firewalld.service
setenforce 0
yum -y install pcre-devel zlib-devel gcc-c++

3.添加nginx用户
useradd -M -s /sbin/nologin nginx

4.编译且安装nginx
cd /usr/local/nginx-1.12.0

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

5.创建软链接便于控制服务
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t  #验证语法格式

6.编辑脚本,使用service工具,控制服务
vim /etc/init.d/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
7. 关闭安全性功能,开启nginx服务
service nginx start
netstat -ntap | grep 80

------------------------------Tomcat服务

1.配置java环境,jdk的软件包可去官网下载,解压软件包
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
systemctl stop firewalld

2.配置环境变量
vim /etc/profile
'添加'
export JAVA_HOME=/usr/local/jdk1.8.0_91					//指定家目录
export JRE_HOME=${JAVA_HOME}/jre						//java虚拟机
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib		//java函数库
export PATH=${JAVA_HOME}/bin:$PATH

4.使环境变量运行
source /etc/profile

5.解压tomcat软件包,同样软件包也可以在官网获得
tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local

6.修改文件名,便于操作
cd /usr/local
mv apache-tomcat-8.5.16/ tomcat

7.建立软链接,便于服务控制
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

8.关闭安全性功能,开启服务
startup.sh
netstat -ntap | grep 8080

---------------------------------Nginx配置动静分离
对java文件请求转发到Tomcat处理
1.配置nginx.conf
//在nginx服务器中操作编辑配置文件nginx.conf

 server {
        listen       80;
        server_name  localhost;
        location ~.*.jsp$ {               //正则表达式,即任何以.jsp结尾的url
        proxy_pass http://192.168.100.150:8080;   //转到192.168.43.102:8080
        proxy_set_header Host $host;
        }

nginx -t		
2.配置nginx的站点
//创建静态页面
vim /usr/local/nginx/html/index.html
//全删,添加以下内容
<!DOCTYPE html>
<html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
静态页面
<p>这是个静态页面</p>
</body>
</html>

3.重启服务
service nginx stop
service nginx start

-----------------------------------tomcat配置动态页面
1.创建tomcat的web目录
mkdir /usr/local/tomcat/webapps/test
2.在test中编辑,动态页面的站点
vim /usr/local/tomcat/webapps/test/index.jsp

<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<div>动态页面</div>
</body>
</html>
3.测试
//访问静态
http://192.168.100.140
//访问动态
http://192.168.100.140/test/index.jsp

----------当动态JSP交给Tomcat处理,jsp文件包含静态图片,怎么去请求Nginx处理静态图片?
//Tomcat服务操作
1.在tomcat服务器的动态站点上,添加静态图片
vim /usr/local/tomcat/webapps/test/index.jsp
<body>
<div>动态页面</div>
<img src="game.jpg"/>   //添加页面图片
</body>

//nginx服务操作
2.在nginx服务器上,存放图片,而且图片的目录名称要和tomcat中的java项目名称相同
vim /usr/local/nginx/conf/nginx.conf
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
	root html;
	expires 30d;
}
(Tomcat指路径,nginx放图片)
[root@tomcat01 test]# pwd
/usr/local/tomcat/webapps/test
[root@tomcat01 test]# ls
index.jsp
[root@nginx test]# ls
game.jpg
[root@nginx test]# pwd
/usr/local/nginx/html/test

注意:目录名称需要和java项目名称相同
mkdir /usr/local/nginx/html/test
cp /mnt/game.jpg /usr/local/nginx/html/test

重启nginx
service  nginx restart
http://192.168.100.140/test/index.jsp