千家信息网

tomcat+nginx集群是怎样的

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,tomcat+nginx集群是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。内容要点:一、原理解释:(1)动静分离
千家信息网最后更新 2025年02月03日tomcat+nginx集群是怎样的

tomcat+nginx集群是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

内容要点:

一、原理解释:

(1)动静分离

(2)正向代理和反向代理

二、实验示例

一、原理解释:

(1)动静分离

为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源比如图片,js,css等文件,我们可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。用户请求的动态文件比如servlet,jsp则转发给Tomcat,Jboss服务器处理,这就是动静分离。这也是反向代理服务器的一个重要的作用。

(2)正向代理和反向代理

1、正向代理:

解释:也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我,从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

结论:正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。就像要访问google用***代理***去访问(用户知道要访问真正的服务器)

2、反向代理:

解释:例用户访问 http://www.example.com/readme ,但www.example.com上并不存在readme页面,他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户,但用户并不知情,这里所提到的 www.example.com 这个域名对应的服务器就设置了反向代理功能。

结论:反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。(用户不知道要访问真正的服务器)

Nginx 实现负载均衡就是通过反向代理来实现的

二、实验示例

实验环境:

主机 操作系统 IP地址 主要软件

Nginx服务器 CentOS 7.4x86_64 192.168.109.185 nginx-1.12.0.tar.gz

Tomcat服务器1 CentOS 7.4x86_64 192.168.109.188 apache-tomcat-9.0.16.tar.gz

Tomcat服务器2 CentOS 7.4x86_64 192.168.109.189 apache-tomcat-9.0.16.tar.gz

----------------------------------------------------------------------------------------------------------------------------------------

实验步骤:

-----------------------------------------------------------------安装JDK--------------------------------------------------------------------将jdk 软件包上传到 /root目录下 安装jdk[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm 警告:jdk-8u201-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY准备中...                          ################################# [100%]正在升级/安装...   1:jdk1.8-2000:1.8.0_201-fcs        ################################# [100%]Unpacking JAR files...        tools.jar...        plugin.jar...        javaws.jar...        deploy.jar...        rt.jar...        jsse.jar...        charsets.jar...        localedata.jar...●确认jdk安装目录●[root@localhost ~]# cd /usr/java/jdk1.8.0_201-amd64/[root@localhost jdk1.8.0_201-amd64]# ll总用量 25980drwxr-xr-x 2 root root     4096 3月   7 22:09 bin-rw-r--r-- 1 root root     3244 12月 16 03:45 COPYRIGHTdrwxr-xr-x 3 root root      132 3月   7 22:09 include-rw-r--r-- 1 root root  5207434 12月 12 17:07 javafx-src.zipdrwxr-xr-x 5 root root      185 3月   7 22:09 jredrwxr-xr-x 5 root root      245 3月   7 22:09 lib-rw-r--r-- 1 root root       40 12月 16 03:45 LICENSEdrwxr-xr-x 4 root root       47 3月   7 22:09 man-rw-r--r-- 1 root root      159 12月 16 03:45 README.html-rw-r--r-- 1 root root      424 12月 16 03:45 release-rw-r--r-- 1 root root 21103945 12月 16 03:45 src.zip-rw-r--r-- 1 root root   108109 12月 12 17:07 THIRDPARTYLICENSEREADME-JAVAFX.txt-rw-r--r-- 1 root root   155002 12月 16 03:45 THIRDPARTYLICENSEREADME.txt##设置JDK环境变量###[root@localhost ~]# vi /etc/profile      ##末行参数新增#export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH[root@localhost ~]# source /etc/profile   ##环境变量生效##[root@localhost ~]# java -version            ###查看java版本##java version "1.8.0_201"Java(TM) SE Runtime Environment (build 1.8.0_201-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)##编辑java基础脚本,测试环境[root@localhost profile.d]# cd /opt[root@localhost opt]# lsrh[root@localhost opt]# vim abc.javapublic class HelloWorld{    public static void main(String[] args){       System.out.println( "Hello, World!" );    }}[root@localhost opt]# javac abc.java       #编译[root@localhost opt]# lsabc.class  abc.java rh[root@localhost opt]# java abc                #运行abc-------------------------------------安装配置tomcat--------------------------------------------------------------tar zxvf apache-tomcat-9.0.16.tar.gz -C /optcd /opt/lsmv apache-tomcat-9.0.16/ /usr/tomcat8cd /usr/lscd tomcat8/cd conf/cd ../bin/##开启tomcat服务[root@localhost bin]# ./startup.sh Using CATALINA_BASE:   /usr/local/tomcat8Using CATALINA_HOME:   /usr/local/tomcat8Using CATALINA_TMPDIR: /usr/local/tomcat8/tempUsing JRE_HOME:        /usr/javaUsing CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jarTomcat started.[root@localhost bin]# netstat -natp | grep 8080##关闭防火墙[root@localhost bin]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@localhost bin]# systemctl stop firewalld.service [root@localhost bin]# setenforce 0[root@localhost bin]# ##测试win10 网页访问   http://192.168.109.187:8080#加入测试页面mkdir -pv /web/webapp1vim /web/webapp1/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>      JSP test1 page      <% out.println("Welcome to test site,http://www.test1.com");%> cd ../conf/vim server.xml        //添加//后两行  docBase:web应用的文档基准目录                       reloadable 设置监听"类"是否变化                       path=""设置默认"类"##启动服务cd ../bin/./shutdown.sh./startup.sh##测试win10 网页访问   http://192.168.109.187:8080--------------------------------------------安装另一台tomcat------------------------------------------同样步骤#测试网页改为teas2 与1做区分    <% out.println("Welcome to test site,http://www.test2.com");%>##测试win10 网页访问   http://192.168.109.187:8080--------------------------------------------编译nginx--------------------------------------------------yum -y install gcc gcc-c++ make pcre-devel zlib-devel openssl-devel cd /opt/nginx-1.12.0useradd -s /bin/false www[root@localhost nginx-1.12.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_modulemake && make install[root@localhost nginx-1.12.0]# cd /usr/local/nginx/[root@localhost nginx]# cd conf/[root@localhost conf]# vim nginx.conf    keepalive_timeout  65;    #gzip  on;        upstream tomcat-server {                server 192.168.109.188:8080 weight=1;                   #添加                server 192.168.109.189:8080 weight=1;                }...        #access_log  logs/host.access.log  main;        location / {            root   html;            index  index.html index.htm;            proxy_pass http://tomcat-server;             #添加此行配置网页跳转        }###启动服务,关闭防火墙[root@localhost conf]# cd ../[root@localhost nginx]# lsconf  html  logs  sbin[root@localhost nginx]# cd sbin/[root@localhost sbin]# lsnginx[root@localhost sbin]# ./nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost sbin]# ./nginx [root@localhost sbin]# netstat -natp | grep nginx tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      53555/nginx: master [root@localhost sbin]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@localhost sbin]# systemctl stop firewalld.service [root@localhost sbin]# setenforce 0[root@localhost sbin]# -------------------------------------------------测试------------------------------win10访问

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0