温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

tomcat+nginx集群是怎样的

发布时间:2021-09-26 17:29:41 来源:亿速云 阅读:120 作者:柒染 栏目:系统运维

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
总用量 25980
drwxr-xr-x 2 root root     4096 3月   7 22:09 bin
-rw-r--r-- 1 root root     3244 12月 16 03:45 COPYRIGHT
drwxr-xr-x 3 root root      132 3月   7 22:09 include
-rw-r--r-- 1 root root  5207434 12月 12 17:07 javafx-src.zip
drwxr-xr-x 5 root root      185 3月   7 22:09 jre
drwxr-xr-x 5 root root      245 3月   7 22:09 lib
-rw-r--r-- 1 root root       40 12月 16 03:45 LICENSE
drwxr-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-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export 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]# ls
rh
[root@localhost opt]# vim abc.java
public class HelloWorld{
    public static void main(String[] args){ 
      System.out.println( "Hello, World!" );
    }
}
[root@localhost opt]# javac abc.java       #编译
[root@localhost opt]# ls
abc.class  abc.java rh
[root@localhost opt]# java abc                #运行
abc
-------------------------------------安装配置tomcat--------------------------------------------------------------
tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt
cd /opt/
ls
mv apache-tomcat-9.0.16/ /usr/tomcat8
cd /usr/
ls
cd tomcat8/
cd conf/
cd ../bin/
##开启tomcat服务
[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat 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/webapp1
vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>JSP test1 page</title>
 </head>
 <body>
    <% out.println("Welcome to test site,http://www.test1.com");%>
 </body>
</html>
cd ../conf/
vim server.xml
<Host name="localhost" appBase="webapps"
               unpackWARs="true" autoDeploy="true" >
        <Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
//添加//后两行  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.0
useradd -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_module
make && 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]# ls
conf  html  logs  sbin
[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: 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访问

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI