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访问
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。