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访问
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。