外链论坛

 找回密码
 立即注册
搜索
查看: 63|回复: 3

大型网站架构的技术细节:后端的工作原理,搭建Web应用服务器

[复制链接]

2880

主题

2万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979669
发表于 2024-7-27 17:13:02 | 显示全部楼层 |阅读模式

搭建Web应用服务器

后端应用程序的服务器叫作为Web应用服务器,Web应用服务器按照区别研发语言是有所区别的。这儿以Java研发的后端应用程序为例,对应的Web应用服务器软件有Tomcat、Jetty和Weblogic。

重视Web应用服务器和第3章说到的Web服务器是有所区别的。Web服务器通常处理的是静态网页资源,如网页关联文件和照片等资源文件,而Web应用服务器除了能处理静态文件之外,还能够执行应用程序。

Tomcat:在架构方面其采用了整体架构,很难扩展并且配置繁杂然则功能全面;在文档方面其功能比较全面,网上能查到非常多运用过程中遇到的问题;在应用场景方面,其适用于频繁且生命周期较短的请求。

Jetty:在架构方面基于一个可扩展的架构,扩展更易且配置简单,可按照需要增减组件,内存开销相对更少;在文档方面,其文档比较零散,网上能查到的在运用过程中遇到问题较少有些;在应用场景方面,其适用于海量连接且长期的请求,如Web聊天应用。

Weblogic是一款不开源且难免费的商场软件,功能完善况且版本稳定。

Web应用服务器软件的选取按照详细的业务场景而选择。当然,一个大型网站系统里可能会有多种Web应用服务器软件,由于区别的后端应用程序会有区别的业务场景和性能需求因此Web应用服务器软件需要按照实质状况选择。但通常状况下,大都数的业务请求都是频繁的况且生命周期较短,在流行性方面Tomcat是比较占优的,因此呢这儿选择Tomcat做为本书的Web应用服务器软件。

因为Tomcat本身是用Java语言编写的,其运行的后端应用程序是用Java编写的,而运行Java编写的程序需要JDK环境,因此Tomcat的安装过程大体上分成两部分,即JDK安装和Tomcat安装。这儿需要重视的是,区别的Tomcat版本对JDK版本是有需求的,如表4.1所示,详情见Tomcat官方文档(http://tomcat.apache.org/whichversion.html)。

表4.1 区别的Tomcat版本对JDK版本的需求

下面分别在Windows系统和CentOS系统中安装Tomcat。选取这两个系统是由于Windows通常研发人员在研发运用的操作系统,而CentOS通常是网站服务器的操作系统。

说明:JDK(Java Development Kit)是Java软件研发工具包,其包括Java的运行环境和工具。JDK的原理会在4.1.4小节“后端应用程序的工作原理”中详细介绍,这儿只需要关注安装过程就可

1.在Windows系统中安装Tomcat

在Windows系统中安装Tomcat的操作过程如下:

(1)从Oracle JDK官网

https://www.oracle.com/java/technologies/javase-downloads.html)上下载JDK,通常选取最新的LTS(Long Time Support,长时间支持)版本。官网上的版本划分如图4.1所示,这儿选取JDK 11(图4.1中的Java SE 11)做为安装版本,打开下载链接后选取Windows版本的JDK安装包下载就可

图4.1 官网上的版本划分

重视有些项目出于JDK升级成本或稳定性的思虑,会选择旧版本的JDK,如JDK 8。倘若项目的JDK版本已然选定了,那样即使是研发环境,应该选择对应的版本。另一,JDK通常指的是Oracle的JDK。除此之外还有其他的JDK,如Open JDK等。2019年后发布的Oracle JDK版本起始收费(商场用途),而Open JDK是完全免费的。

(2)双击下载的JDK安装文件安装JDK。安装完毕后需要配置环境变量才可让JDK生效。打开“系统属性”对话框,单击“环境变量”按钮弹出“环境变量”对话框,如图4.2所示。

图4.2 “环境变量”对话框

打开“环境变量”对话框后,在“系统变量”栏中添加JAVA_HOME变量,如图4.3所示。其中,变量的值为JDK的安装目录,JAVA_HOME这个变量名是固定的,非常多第三方软件都会按照JAVA_HOME寻找JDK的路径。

图4.3 设置JAVA_HOME环境变量

添加完JAVA_HOME变量后编辑Path变量,把%JAVA_HOME%\bin添加进去,如图4.4所示。值得一提的是,Path变量的设置是为了让Windows系统找到JDK的位置,设置Path环境变量后,就能够在任何目录下执行javac/java等命令了。

而JAVA_HOME的设置不仅是为了在Path变量设置时显出简洁,更重要的是让有些软件找到JDK的位置,如Tomcat便是经过JAVA_HOME环境变量找到JDK位置的(默认状况)。

图4.4 在Path变量中添加JAVA_HOME

配置完环境变量之后,就能够检验JDK是不是安装完成为了。打开一个新的CMD窗口(旧的CMD窗口不识别新设置的环境变量),执行java-version命令,倘若命令执行后表示当前的JDK版本的话,即说明JDK安装成功,如图4.5所示。

图4.5 检验JDK是不是安装成功

重视倘若之前安装了其他版本的JDK,需要先卸载原有的JDK再安装新的JDK,卸载JDK需要在“应用和功能”中卸载,这般才可把原有的JDK卸载干净。另一这儿的环境变量配置是以JDK 11为例的,其他版本的JDK在环境变量配置时可能会有所区别。

(3)从Tomcat官网(https://tomcat.apache.org/)上下载Tomcat,这儿选取最新的稳定版本。官网上的版本划分如图4.6所示,这儿下载适用于Windows系统的Tomcat 9。

图4.6 官网上的版本划分

重视非常多项目都选择Tomcat的旧版本(如稳定性较好的8.5),这是由于Web应用服务器最重要的便是稳定性,旧版本的稳定性已然经过了长期的验证,而新版本虽然带来非常多新的功能,然则新功能可能会给Tomcat带来不稳定的状况,况且这些新功能非常多状况下都是不必要的。

(4)下载完Tomcat压缩包后,将其解压,目录结构如图4.7所示。其中,webapps/ROOT文件夹默认存放后端应用程序,conf文件夹存放的是Tomcat关联的配置文件,logs文件夹存放的是Tomcat运行日志。

图4.7 解压后的Tomcat目录结构

(5)修改Tomcat配置。Tomcat的配置文件是conf/server.xml,默认的配置文件如代码4.1所示。

代码4.1 默认的Tomcat配置

<Connector port="8080" protocol="HTTP/1.1" <!-- 8080为HTTP请求端口 -->

connectionTimeout="20000" <!-- 连接超时时间 -->

redirectPort="8443" /> <!-- 8443为HTTPS重定向端口 -->

<Host

name="localhost"

appBase="webapps"

unpackWARs="true"

autoDeploy="true">

</Host>

...

(6)添加Tomcat环境变量。打开“环境变量”对话框,在“系统变量”栏中添加CATALINA_HOME变量,如图4.8所示,其中,变量的值为Tomcat的安装目录,CATALINA_HOME这个变量名是固定的。

说明:Tomcat实质上是Apache的扩展,其重点由3个部分构成,即Web容器、Catalina和JSP容器。Web容器用于处理有些静态网页资源;Catalina用于运行Java程序;JSP容器用于处理JSP动态网页。值得一提的是,Tomcat虽然能处理静态网页资源,然则其处理能力Web服务器软件(如Apache和Nginx)有效因此Tomcat通常做为Java后端应用程序或JSP的运行环境。

图4.8 设置Tomcat环境变量

(7)起步Tomcat。进入图4.7所示的bin文件夹,双击startup.bat文件,正常状况下会显现如图4.9所示的窗口,此窗口无须关闭,关闭窗口即为关闭Tomcat。倘若窗口一闪而过,则暗示Tomcat起步失败,能够查看图4.7所示的logs文件夹中的catalina.log日志。倘若保持默认Tomcat配置的话,在浏览器的位置栏中输入http://localhost:8080会打开Tomcat的默认网页,如图4.10所示。

重视Tomcat除了以上起步方式以外,还能够经过“Windows服务”的形式起步,即Tomcat的起步无须人工执行,计算机会自动在后台进程中执行Tomcat程序,并且如图4.9所示的窗口。这种起步方式通常是在Windows做为服务器系统的状况下,而在做为研发运用的Windows系统中,不意见以Windows服务的形式起步Tomcat,这般会与IDE(IDE指的是研发工具,如Eclipse、VS Code等)调试后端应用程序时产生冲突。

图4.9 Tomcat起步窗口

图4.10 Tomcat默认网页

(8)倘若非本机的浏览器想要拜访Tomcat服务,则需要设置防火墙开启端口权限。针对大型网站而言,服务器系统通常为Linux系统,Windows的Tomcat通常只是为了本地研发运用,非本机浏览器拜访的场景比较少,因此呢防火墙的设置不是必要的操作。倘若研发时有非本机拜访状况能够暂时关闭Windows防火墙。

2.在CentOS系统中安装Tomcat

在CentOS系统中安装Tomcat时,举荐经过下载指定版本的方式进行安装。

需要重视的是,研发环境和生产环境的Tomcat版本最好保持一致,这般能避免有些因为Tomcat版本差异而诱发的问题。

重视这儿有别于3.1.1小节中举荐的yum安装,这是由于Web服务器(Apache、Nginx等)只是负责静态资源处理,版本差异对稳定性不会产生太大的影响,而Web应用服务器软件(Tomcat等)是做为后端应用程序的容器,版本差异对后端应用程序的稳定性影响很强因此呢Web应用服务器软件需要指定版本进行安装。

下面是CentOS系统中安装Tomcat的详细操作过程

(1)从Oracle JDK官网

https://www.oracle.com/java/technologies/javase-downloads.html)上下载JDK,通常选取最新的LTS(Long Time Support,长时间支持)版本。官网上的版本划分如图4.1所示,这儿选取JDK 11(图4.1中的Java SE 11)做为安装版本。单击下载链接后会进入仔细的下载页面,如图4.11所示。选取对应系统的安装包安装起来会方便有些然则为了安装过程的通用性,咱们选取通用的Linux压缩包做为下载对象。

图4.11 仔细的下载页面

(2)安装JDK。下载完通用的Linux系统压缩包后,把JDK压缩包解压到任意目录下(这儿举荐/usr/local目录),解压命令如代码4.2所示,其中,

jdk-11.0.6_linux-x64_bin.tar.gz是压缩包名,/usr/local/是解压的目的路径。解压后的目录结构如图4.12所示。

代码4.2 解压缩JDK压缩包

sudo tar -xvf jdk-11.0.6_linux-x64_bin.tar.gz -C /usr/local/

图4.12 JDK解压后的目录结构

解压完毕后,需要配置环境变量才可让JDK生效,配置命令如代码4.3所示。其中,/usr/local/jdk-11.0.6为JDK的路径。

代码4.3 配置JDK环境变量

sudo echo export JAVA_HOME=/usr/local/jdk-11.0.6 >> /etc/profile

sudo echo export PATH=$PATHJAVA_HOME/bin >> /etc/profile

sudo source /etc/profile

配置完JDK的环境变量后,输入java-version检验JDK是不是安装成功,正常状况下会表示当前的JDK版本,如图4.13所示。

图4.13 检验JDK是不是安装成功

(3)从Tomcat官网(https://tomcat.apache.org/)上下载Tomcat,这儿选取最新的稳定版本。官网上的版本划分如图4.14所示,这儿下载适用于Linux系统的Tomcat 9。

图4.14 官网上的版本划分

重视前面在Windows系统中安装Tomcat时说到,Tomcat的版本不必定选择最新的稳定版本,由于Web应用服务器软件最重要的是稳定性,而旧版本因为拥有更长的稳定性检验时间,因此此刻非常多机构都在继续运用稳定的Tomcat 8.5或Tomcat 7,而放弃运用新的Tomcat 9或Tomcat 10。

(4)下载完Tomcat压缩包后,把Tomcat压缩包解压到任意目录下(这儿举荐/usr/local目录),解压命令如代码4.4所示。其中,

apache-tomcat-9.0.33.tar.gz是压缩包名,/usr/local/是解压的目的路径。解压后的目录结构如图4.15所示,其中,webapps文件夹默认用来存放后端应用程序,conf文件夹存放的是Tomcat关联配置文件,logs文件夹存放的是Tomcat运行日志。

代码4.4 解压缩Tomcat压缩包

sudo tar -xvf apache-tomcat-9.0.33.tar.gz -C /usr/local/

图4.15 解压后的Tomcat目录结构

(5)修改Tomcat配置。Tomcat的配置文件是conf/server.xml,默认的配置文件代码如代码4.5所示。

代码4.5 默认的Tomcat配置

<Connector port="8080" protocol="HTTP/1.1" <!-- 8080为HTTP请求端口 -->

connectionTimeout="20000" <!-- 连接超时时间 -->

redirectPort="8443" /> <!-- 8443为HTTPS重定向端口 -->

<Host

name="localhost"

appBase="webapps"

unpackWARs="true"

autoDeploy="true">

</Host>

(6)添加Tomcat环境变量,配置命令如代码4.6所示,其中,CATALINA_HOME变量名是固定的,

/usr/local/apache-tomcat-9.0.33是Tomcat的路径。

代码4.6 配置Tomcat环境变量

sudo echo export CATALINA_HOME=/usr/local/apache-tomcat-9.0.33 >> /etc/

profile

sudo echo export PATH=$PATHCATALINA_HOME/bin >> /etc/profile

sudo source /etc/profile

(7)配置自动起步Tomcat服务。新建

/usr/lib/systemd/system/tomcat.service文件,在文件内写入如代码4.7所示的内容,其中,

/usr/local/apache-tomcat-9.0.33/bin/startup.sh和

/usr/local/apache-tomcat-9.0.33/bin/shutdown.sh需要按照实质的目录路径而定。

代码4.7 配置自动起步Tomcat服务

[Unit]

Description=Tomcat

After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]

Type=oneshot

ExecStart=/usr/local/apache-tomcat-9.0.33/bin/startup.sh

ExecStop=/usr/local/apache-tomcat-9.0.33/bin/shutdown.sh

ExecReload=/bin/kill -s HUP $MAINPID

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

创建完文件后,设置开机起步命令、起步服务命令和停止服务命令,如代码4.8所示。其中,tomcat.service为刚创建的文件名。

代码4.8 配置开机起步命令等

sudo systemctl enable tomcat.service #设置开机起步命令

sudo systemctl start tomcat.service #起步服务命令

sudo systemctl stop tomcat.service #停止服务命令

(8)配置防火墙。通常完成过程(4)就能起步Tomcat了,倘若防火墙是开启状态的话,则非本机的浏览器是不可拜访Tomcat的,因此呢这儿需要配置防火墙。配置防火墙的命令如代码4.9所示,并且命令需要次序执行。

代码4.9 配置防火墙的命令

#打开端口,8080为Tomcat端口

sudo firewall-cmd --add-port=8080/tcp –permanent

sudo firewall-cmd --reload #重启防火墙

防火墙配置成功后,非本机浏览器便能够拜访Tomcat默认网页了,如图4.16所示。其中,192.168.3.54为服务器的IP位置,8080为Tomcat的端口。

图4.16 非本机浏览器拜访Tomcat默认网页

本文给大众讲解的内容是大型网站架构的技术细节:后端架构,后端的工作原理,搭建Web应用服务器

下篇文案大众讲解的内容是大型网站架构的技术细节:后端架构,后端的工作原理, 构造一个简单的后端应用程序觉得文案不错的伴侣能够转发此文关注博主感谢大众的支持
回复

使用道具 举报

2923

主题

2万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569400
发表于 2024-10-8 08:26:12 | 显示全部楼层
论坛的成果是显著的,但我们不能因为成绩而沾沾自喜。
回复

使用道具 举报

3026

主题

2万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99099005
发表于 2024-10-9 04:00:35 | 显示全部楼层
回顾历史,我们不难发现:无数先辈用鲜血和生命铺就了中华民族复兴的康庄大道。
回复

使用道具 举报

2989

主题

2万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99159233
发表于 前天 17:52 | 显示全部楼层
你的见解真是独到,让我受益匪浅。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-5 14:42 , Processed in 0.075347 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.