LVS之Nginx做反向代理+tomcat做网站、nginx与tomcat之间动静分离【网页动静分离、图片动静分离】故障处理

news/2024/5/20 10:36:33/文章来源:https://blog.csdn.net/zhang_yazhou/article/details/108412001

LVS之Nginx做反向代理+tomcat做网站、nginx与tomcat之间动静分离

文章目录

    • LVS之Nginx做反向代理+tomcat做网站、nginx与tomcat之间动静分离
      • 一、nginx反向代理
        • 【1】反向代理概念
        • 【2】正向代理与反向代理的原理
          • (1)nginx做正向代理图示:
          • (2)nginx做反向代理图示
      • 二、LVS之Nginx做反向代理+tomcat做网站部署
        • 【1】手工编译安装nginx服务
        • 【2】编译安装tomcat
          • (1)Java环境部署
          • (2)tomcat环境部署
        • 【3】配置tomcat01服务器
        • 【4】配置tomcat02服务器
        • 【5】nginx反向代理配置
        • 【6】访问192.168.60.30会出现轮询webapp1上面书写的页面
      • 三、nginx与tomcat之间动静分离
        • 【1】网页动静分离
          • (1)在nginx服务器上面的配置
          • (2)tomcat服务器配置
          • (3)访问192.168.60.30会出现静态网页,访问192.168.60.30/test/index.jsp会出现动态网页
        • 【2】图片动静分离
          • (1)nginx服务器配置
          • (2)tomcat服务器的配置
          • (3)访问192.168.60.30/test/index.jsp,会出现动态页面和图片,但是图片在nginx服务器上,动态页面在tomcat上面。
      • 四、操作中出现的错误及解决方案
        • 【问题1】修改配置文件之后tomcat端口打不开,无法监听
        • 【分析问题1】
        • 【解决方案】

一、nginx反向代理

【1】反向代理概念

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

【2】正向代理与反向代理的原理

理解这两种代理的关键在于代理服务器所代理的对象是什么,正向代理代理的是客户端,我们需要在客户端进行一些代理的设置。而反向代理代理的是服务器,作为客户端的我们是无法感知到服务器的真实存在的。

(1)nginx做正向代理图示:

在这里插入图片描述

(2)nginx做反向代理图示

在这里插入图片描述
总结起来还是一句话:正向代理代理客户端,反向代理代理服务器。

二、LVS之Nginx做反向代理+tomcat做网站部署

nginx做反向代理,tomcat做网页,实现负载均衡。
nginx支持高并发,所以实现动静分离,nginx做静态网页,tomcat做动态
1、项目需求
至少三台服务器,两台tomcat相同的配置,一台做nginx反向代理。
【1】nginx服务器:192.168.60.30
【2】tomcat01服务器:192.168.60.50
【3】tomcat02服务器:192.168.60.40
2、项目配置

【1】手工编译安装nginx服务

yum install -y gcc gcc-c++ pcre-devel zlib-devel
useradd -M -s /sbin/nologin nginx
tar zxvf nginx-1.12.2.tar.gz
cd /opt/nginx-1.12.2/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
//优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
ln -s /usr/local/nginx/conf/nginx.conf /etc/

【2】编译安装tomcat

(1)Java环境部署
tar zxvf /opt/jdk-8u91-linux-x64.tar.gz -C /usr/local
vim /etc/profile
//Java安装路径
export JAVA_HOME=/usr/local/jdk1.8.0_91
//Java库文件
export JRE_HOME=${JAVA_HOME}/jre
//Java类文件
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
//系统变量
export PATH=$JAVA_HOME/bin:$PATHsource /etc/profile
(2)tomcat环境部署
tar zxvf /opt/apache-tomcat-9.0.16.tar.gz -C /usr/local
cd /usr/local
mv apache-tomcat-9.0.16/ tomcat
cd /usr/local/tomcat/bin/
//优化开启和关闭tomcat服务的路径,以便于系统识别
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin

【3】配置tomcat01服务器

cd /usr/local/tomcat/
mkdir -p /usr/local/tomcat/webapps/web/webapp1
vim webapp1/index.jsp
<h1>this is lvs1 web</h1>vim /usr/local/tomcat/conf/server.xml
150 <Context docBase="web/webapp1" path="" reloadable="false">
151 </Context>
docBase:web站点目录
path:设置默认类
reloadable:设置监视类是否变化startup.sh

【4】配置tomcat02服务器

cd /usr/local/tomcat/
mkdir -p /usr/local/tomcat/webapps/web/webapp1
vim webapp1/index.jsp
<h1>this is lvs2 web</h1>vim /usr/local/tomcat/conf/server.xml
150 <Context docBase="web/webapp1" path="" reloadable="false">
151 </Context>startup.sh

【5】nginx反向代理配置

vim /usr/local/nginx/conf/nginx.conf
#gzip  on;upstream tomcat_server {server 192.168.60.50:8080 weight=1;server 192.168.60.40:8080 weight=1;}location / {root   html;index  index.html index.htm;proxy_pass http://tomcat_server;}//关闭nginx服务
pkill -9 nginx
//开启nginx服务
nginx

【6】访问192.168.60.30会出现轮询webapp1上面书写的页面

在这里插入图片描述
在这里插入图片描述

三、nginx与tomcat之间动静分离

基于上面的nginx和tomcat服务器的搭建进行操作,下面的tomcat服务器任选一台即可。

【1】网页动静分离

(1)在nginx服务器上面的配置
vim /usr/local/nginx/conf/nginx.conf
#access_log  logs/host.access.log  main;location ~.*.jsp$ {proxy_pass http://192.168.60.50:8080;proxy_set_header Host $host;}
nginx -tvim /usr/local/nginx/html/index.html
<h1>this is jingtai web</h1>nginx
(2)tomcat服务器配置
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<h1>this is dongtai web</h1>
startup.sh
(3)访问192.168.60.30会出现静态网页,访问192.168.60.30/test/index.jsp会出现动态网页

在这里插入图片描述
在这里插入图片描述

【2】图片动静分离

(1)nginx服务器配置
mkdir /usr/local/nginx/html/test
//注意目标名称需要和Java项目名称相同均为test
cd /usr/local/nginx/html/test
mv WPS图片-修改尺寸.jpg meinv.jpgvim /usr/local/nginx/conf/nginx.conf
location ~.*.\.(gif|jpg|jpeg|png|bmp|swf|css)$ {root html;expires 30d;}
(2)tomcat服务器的配置
vim /usr/local/tomcat/webapps/test/index.jsp
<h1>this is dongtai web</h1>
<img src="meinv.jpg" />
(3)访问192.168.60.30/test/index.jsp,会出现动态页面和图片,但是图片在nginx服务器上,动态页面在tomcat上面。

在这里插入图片描述

四、操作中出现的错误及解决方案

【问题1】修改配置文件之后tomcat端口打不开,无法监听

【分析问题1】

部署完tomcat之后8080端口是可以打开的,但是在lvs负载均衡时修改完配置文件就无法显示8080端口,说明是配置文件的修改有误,所以注释掉添加的那一段,端口可以正常开启。经过仔细查看和分析是因为tomcat默认网页站点是webapps,而在其下新建的web站点要识别就应该写相对路径,不能写绝对路径。所以配置文件错误端口就会默认关闭。

添加的配置是:
150 <Context docBase="/web/webapp1" path="" reloadable="false">
151 </Context>

在这里插入图片描述

【解决方案】

修改的配置是:
150 <Context docBase="web/webapp1" path="" reloadable="false">
151 </Context>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_867382.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专访人人网黄晶:SNS网站后台架构探秘

51CTO在此之前报道过一篇名为《世界最大的PHP站点 Facebook后台技术探秘》的文章&#xff0c;让我们了解到Facebook是如何保证5亿用户的系统一直保持稳定、可靠运行的。如果说Facebook离我们有些远的话&#xff0c;那么相信人人网是大家再熟悉不过的一个SNS网站了。&#xff08…

国内外大型SNS网站后台架构对比

要问时下什么类型的站点人气最旺&#xff1f;答案当属SNS网站。短短几年的时间&#xff0c;SNS便迅速确立了Web 2.0核心的地位。用户的增长量之快更是让人咂舌&#xff0c;而Facebook访问量首次超越Google的消息也让人觉得SNS的前途不可限量。当然&#xff0c;面对庞大且繁琐的…

大型网站架构演变和知识体系

原文:http://developer.51cto.com/art/200810/91460.htm 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演…

用R语言的NetworkInference包推理隐藏的(州政府、网站)影响力网络关系

信息源&#xff1a;https://cran.r-project.org/web/packages/NetworkInference/vignettes/netinf_vignette.html 上图是用NetworkInference包推理出来的美国各州在政策上的互相影响关系。 页面内容可总结为&#xff1a; -------- 数据&#xff1a;美国的某个州某年采取某项政策…

python抓取百度搜索列表的实际网址和网站标题

# codingutf8 import sys import random import string import urllib import urllib2 import re #设置多个user_agents&#xff0c;防止百度限制IP user_agents [Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0, \ Mozilla/5.0 (Windows NT …

使用可道云kodexplorer将dedecms网站秒变私有网盘

国内草根站长用的最多的一款建站源程序就是dedecms&#xff0c;通常是通过FTP或者服务器面板自带的文件管理器来上传下载的。FTP可视性、体验都相对差一点&#xff0c;且需要事先安装FTP软件&#xff0c;更换环境后的站点管理上有很多不便&#xff1b;另一方面&#xff0c;涉及…

如何借助网站高级工具查看url

打开音乐网址 然后按鼠标右键&#xff0c;选择审查元素 大概你们大概就是这个样子&#xff0c;当然可能有中文和英文的差距。 然后在标题上面选择网络&#xff0c;假如是英文的话就是network 然后选中副标题媒体 之后你们就能看见&#xff0c;肯定会有一个这样的东西双击打开它…

Centos7 更改Apache默认网站目录

1.找到httpd的配置文件 [rootlocalhost ~]# find / -name httpd.conf标出来的这两个文件都是apache的配置文件&#xff0c;只是一个是系统自带的&#xff08;/etc/httpd/conf/httpd.conf&#xff09;&#xff0c;一个是yum安装产生的&#xff08;/usr/local/apache2/conf/httpd…

java企业 网站源码 后台springmvc SSM 前台 freemarker 静态引擎

代码介绍&#xff1a; 1.网站后台采用主流的 SSM 框架 jsp JSTL&#xff0c;网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html&#xff0c;所以访问速度快&#xff0c;轻便&#xff0c;对服务器负担小 3.网站前端采用主流的响应式布局&#xff0c;同一页面同…

OpenCms “傻瓜建站”之 templateTwo 模块——布局篇

OpenCms “傻瓜建站”之 templateTwo 模块——布局篇1、创建测试网站“ttWeb”&#xff0c;在/sites/下创建名称为 ttWeb 的文件夹&#xff0c;标题设置为“templateTwo Web 测试”&#xff1b; 2、在opencms-system.xml文件中的 <sites> 节点中增加如下设置&#xff1a…

laravel为网站添加支付功能流程(支付宝)

为网站添加支付功能&#xff0c;本博客以添加支付宝接口为例。 一、创建应用 链接&#xff1a;蚂蚁金服开放平台 进入蚂蚁金服开放平台->开发者中心->网页&移动应用 按需求选择创建应用 选择应用功能 然后提交审核&#xff0c;大部分功能需要签约后才能使用。等…

seo初识:发布一个新的网站首先该做些什么?

一、页面对SEO流量的影响 一个网站最先产生的是页面&#xff0c;无论是首页、列表页、详情页或者其他页面。这些页面是否有人搜索&#xff0c;怎么合理的部署该页面的TDK是最开始的SEO工作&#xff0c;也是很重要的SEO工作之一。 二、爬虫 网络爬虫是一个自己主动提取网页的程…

腾讯云+tipask快速搭建基于laravel的CMS网站

一、购买腾讯云服务器&#xff0c;服务市场->基础环境->选择WordPress平台镜像 二、按照tipask教程安装 tipask官方教程地址https://wenda.tipask.com/article/22 官方教程对新手不太友好&#xff0c;我整理如下&#xff1a; 1.ftp上传文件 云服务器镜像装载完毕后&a…

SEO之关键词

长尾词 较长的、比较具体的、搜索次数比较低的词。 单个长尾词搜索次数少&#xff0c;但词的总体数量庞大&#xff0c;加起来的总搜索次数不比热门关键词搜索次数少&#xff0c;甚至更多&#xff0c;而且搜索意图更明确。 大型网站的长尾流量往往远超热门词的流量。 长尾词竞争…

音乐web网站(最后面有项目下载链接)

哔哩哔哩上项目的演示视频以及部署教程视频链接 https://b23.tv/BV18i4y1b7xc/p1 后端是java,&#xff0c;数据库用的mysql&#xff0c;前端HTMLCSSjQuery。前后端数据交互用的ajax&#xff0c;交互数据格式是json。 没登录的时候就是在首页只显示热门歌单 这是歌单界面&#…

大型网站图片服务器架构的演进

目录(?)[-] 单机时代的图片服务器架构集中式集群时代的图片服务器架构实时同步集群时代的图片服务器架构改进共享存储独立图片服务器独立域名的好处当前的图片服务器架构分布式文件系统CDN解决方案如下作者介绍 在主流的Web站点中&#xff0c;图片往往是不可或缺的页面元素&am…

大型网站架构体系的演变(上)

互联网上有很多关于网站架构的各种分享&#xff0c;有些主要是从运维和基础架构的角度去分析的&#xff08;堆机器&#xff0c;做集群&#xff09;&#xff0c;太关注技术细节实现&#xff0c;普通的开发人员基本看不太懂。 本文上篇将主要介绍大型网站基础架构的扩展&#xff…

大型网站架构体系的演变(下)

接着上篇的继续 在做扩展满足了基本的性能需求后&#xff0c;我们会逐渐关注“可用性”&#xff08;也就是我们通常听别人吹牛时说的SLA、几个9&#xff09;。如何保证真正“高可用”&#xff0c;也是个难题。 几乎主流的大中型互联网公司&#xff0c;都会有用到类似的架构&…

一个好用的开源在线时序图(波形图)绘制网站

网页分为上下两个面板&#xff0c;上面板输入一些代码&#xff0c;下面板就会显示对应的波形。有网页在线编辑和windows .exe安装版。 https://wavedrom.com/editor.html https://github.com/zhajio1988/wavedrom

为你的网站做一个安装文件

一个网站做完之后&#xff0c;马上就要上传到服务器上使用了&#xff0c;如果在上传服务器上使用的时候&#xff0c;做一个setup文件&#xff0c;直接在服务器上setup安装一下&#xff0c;这种感觉是不是很cool&#xff1f;那我们就试一试这种很cool的感觉吧。 在做好的网站项目…