Tomcat和nginx实现动静分离(内含nginx服务的部署)

it2025-02-02  10

一、简述

Tomcat上用于承担动态网页的跳转,静态网页仍在nginx上跳转,准备两台部署好Tomcat的主机,一台部署好nginx的主机进行测试。Tomcat的部署在前一篇已经介绍,Tomcat的部署

Tomcat核心组件如下图:

二、案例环境

这里的动态网页很简陋,只是为了做测试用。 主机1:部署了nginx服务,IP:192.168.247.130 主机2:部署了Tomcat服务,IP:192.168.247.140 主机3:部署了Tomcat服务,IP“192.168.247.150

三、动静分离配置

主机1:

编译安装nginx:

[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ [root@localhost ~]# useradd -s /bin/false www [root@localhost opt]# tar zxf nginx-1.6.0.tar.gz [root@localhost opt]# cd nginx-1.6.0/ [root@localhost nginx-1.6.0]# ./configure \ > --prefix=/usr/local/nginx \ > --user=www \ > --group=www \ > --with-file-aio \ > --with-http_stub_status_module \ > --with-http_gzip_static_module \ > --with-http_flv_module \ > --with-http_ssl_module [root@localhost nginx-1.6.0]# make && make install

修改配置文件,即动静分离的配置

[root@localhost nginx-1.6.0]# vi /usr/local/nginx/conf/nginx.conf #gzip on; #需要添加的模块,设置地址池,当访问动态网页时,跳转到地址池中的主机 (即配置了Tomcat服务的主机,网站目录里有动态页面),可以设置权重,来调整访问的顺序次数 这里都设置为1,则默认先访问140,下一次访问的就是150,轮流访问 upstream tomcat_server { server 192.168.247.140:8080 weight=1; server 192.168.247.150:8080 weight=1; } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #在server模块里添加location,即访问以.jsp结尾的网页(动态网页)时,定位到这个模块 跳转至 http://192.168.247.140150,访问Tomcat服务器 location ~ \.jsp$ { proxy_pass http://tomcat_server; } #优化nginx路径 [root@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

制作管理脚本,启动nginx服务

[root@localhost ~]# vi /etc/init.d/nginx #!/bin/bash #chkconfig: 35 20 80 #description: nginx server PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in start) $PROG ;; stop) killall -3 $PROG ;; restart) $0 stop $0 start ;; reload) killall -1 $PROG ;; *) echo "Usage: $0 {start|stop|reload|status}" exit 1 esac exit 0 [root@localhost ~]# chmod +x /etc/init.d/nginx [root@localhost ~]# chkconfig --add nginx [root@localhost ~]# systemctl start nginx [root@localhost ~]# netstat -anpt | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15683/nginx: master

静态网页测试:网页用的是默认的访问页面,无需额外创建,部署完即可直接访问静态网页。

主机2和3:

直接利用之前的Tomcat部署的动态网页做测试。 先不做动静分离的跳转,直接访问Tomcat服务器

主机2:

主机3:

动静分离测试

通过nginx想要访问动态网页

第一次访问的结果:是主机2的动态网页

再刷新一次,就是主机3提供的网页

不断的刷新,就是轮流访问主机2和3。 以上就实现了动静分离。

最新回复(0)