无论是用户访问任何东西都访问后端代理
用户在访问静态页面,java代理到tomcat实例上
1、挂载镜像
[root@kvm122109 Nginx]# mount /dev/cdrom /mnt/
2、安装依赖包
[root@kvm122109 Nginx]# yum -y install gcc gcc-c++ make autoconf openssl openssl-devel
3、解压
[root@kvm122109 Nginx]# tar xf nginx-1.12.1.tar
[root@kvm122109 Nginx]# tar xf pcre-8.40.tar.gz #让nginx支持正则
4、创建用户
[root@kvm122109 Nginx]# useradd -s /sbin/nologin nginx
5、进入到nginx路径
[root@kvm122109 Nginx]# cd nginx-1.12.1/
6、配置
[root@kvm122109 nginx-1.12.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=/root/Nginx/pcre-8.40
7、编译
[root@kvm122109 nginx-1.12.1]# make
8、安装
[root@kvm122109 nginx-1.12.1]# make install
9、编辑启动配置
[root@kvm122109 nginx-1.12.1]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
10、启用脚本
[root@kvm122109 nginx-1.12.1]# systemctl daemon-reload
11、启动nginx
[root@kvm122109 nginx-1.12.1]# systemctl start nginx
Tomcat多实例部署
配置过程:
配置两个Tomcat实例,分别运行/webapps/ROOT下的网站
实例1:
目录:/usr/local/tomcat/multi-instance/instace1 8081 8091
实例2:
目录: /usr/local/tomcat/multi-instance/instace2 8082 8092
1、安装Tomcat
1)安装JDK
[root@kvm122105 tomcat]# rpm -ivh jdk-8u66-linux-x64.rpm
2)安装Tomcat
[root@kvm122105 tomcat]# tar xf apache-tomcat-8.0.44.tar.gz
[root@kvm122105 tomcat]# mv apache-tomcat-8.0.44 /usr/local/tomcat
2、创建多实例目录
[root@kvm122105 tomcat]# mkdir -p /usr/local/tomcat/multi-instance/instance{1,2}/{conf,logs}
3、将tomcat里面的conf文件全部复制到新创建的实例目录下
[root@kvm122105 tomcat]# cp /usr/local/tomcat/conf/* /usr/local/tomcat/multi-instance/instance1/conf/
[root@kvm122105 tomcat]# cp /usr/local/tomcat/conf/* /usr/local/tomcat/multi-instance/instance2/conf/
4、修改各文件配置
[root@kvm122105 tomcat]# vim /usr/local/tomcat/multi-instance/instance1/conf/server.xml
#实例端口
<Host name=“localhost” appBase="/webapps1"
[root@kvm122105 tomcat]# vim /usr/local/tomcat/multi-instance/instance2/conf/server.xml
#实例端口
<Host name=“localhost” appBase="/webapps2"
5、因为修改了访问路径,现在是以根目录的webapps进行访问,则进行创建目录
[root@kvm122105 tomcat]# mkdir -pv /webapps/ROOT
6、创建访问主页
[root@kvm122105 tomcat]# vim /webapps/ROOT/index.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%for(int i=1;i<=6;i++){ %>
<h<%=i%> align="center">欢迎访问jsp页面!</h<%=i%>>
<%} %>
<body>
</body>
7、为方便你控制这两个实例,用脚本进行控制
[root@kvm122105 tomcat]# vim /usr/local/tomcat/multi-instance/instance1/ins1.sh
#!/bin/bash
#instace1 script
export JAVA_OPTS=’-Xms64m -Xmx128m’
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat/multi-instance/instance1
case $1 in
start)
$CATALINA_HOME/bin/startup.sh
;;
stop)
$CATALINA_HOME/bin/shutdown.sh
;;
restart)
$CATALINA_HOME/bin/shutdown.sh
sleep 3
$CATALINA_HOME/bin/startup.sh
;;
esac
[root@kvm122105 tomcat]# vim /usr/local/tomcat/multi-instance/instance2/ins2.sh
#!/bin/bash
#instace2 script
. /etc/init.d/functions
export JAVA_OPTS=’-Xms64m -Xmx128m’
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat/multi-instance/instance2
case $1 in
start)
$CATALINA_HOME/bin/startup.sh
;;
stop)
$CATALINA_HOME/bin/shutdown.sh
;;
restart)
$CATALINA_HOME/bin/shutdown.sh
sleep 5
$CATALINA_HOME/bin/startup.sh
;;
esac
8、添加执行权限:
[root@kvm122105 tomcat]# chmod a+x /usr/local/tomcat/multi-instance/instance2/ins2.sh
[root@kvm122105 tomcat]# chmod a+x /usr/local/tomcat/multi-instance/instance1/ins1.sh
9、启动:
[root@kvm122105 tomcat]# /usr/local/tomcat/multi-instance/instance1/ins1.sh start
[root@kvm122105 tomcat]# /usr/local/tomcat/multi-instance/instance2/ins2.sh start
[root@kvm122105 tomcat]# ss -antp | grep java
解决tomcat访问慢:
先安装rng
[root@kvm122105 tomcat]# yum install rng-tools
[root@kvm122105 tomcat]# cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
[root@kvm122105 tomcat]# vim /etc/systemd/system/rngd.service
在里面增加-r /dev/urandom
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon
[Service]
ExecStart=/sbin/rngd -f -r /dev/urandom
[Install]
WantedBy=multi-user.target
[root@kvm122105 tomcat]# systemctl daemon-reload
[root@kvm122105 tomcat]# systemctl restart rngd
10、在浏览器里面进行访问tomcat
http://192.168.122.105:8081/
http://192.168.122.105:8082/
配置nginx的访问
[root@kvm122109 nginx-1.13.4]# vim /usr/local/nginx/conf/nginx.conf
#gzip on;
upstream tomcatsrv {
server 192.168.122.105:8081;
server 192.168.122.105:8082;
}
location / {
proxy_pass http://tomcatsrv;
proxy_set_header x-real-ip $remote_addr;
}
[root@kvm122109 nginx-1.13.4]# systemctl nginx restart
修改tomcat配置文件,将%h改为%{x-real-ip},两个实例都要修改
[root@kvm122105 tomcat]# vim /usr/local/tomcat/multi-instance/instance1/conf/server.xml
pattern="%{x-real-ip}i %l %u %t “%r” %s %b" />
[root@kvm122105 tomcat]# vim /usr/local/tomcat/multi-instance/instance2/conf/server.xml
pattern="%{x-real-ip}i %l %u %t “%r” %s %b" />
两个实例修改完后,重启tomcat
[root@kvm122105 tomcat]# /usr/local/tomcat/multi-instance/instance1/ins1.sh restart
[root@kvm122105 tomcat]# /usr/local/tomcat/multi-instance/instance2/ins2.sh restart
在浏览器上输入IP地址进行测试:
http://192.168.122.109/
也可以访问:
http://192.168.122.109/index.jsp