龙空技术网

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

程序员高级码农II 320

前言:

如今各位老铁们对“centos65weblogic”可能比较关注,小伙伴们都需要剖析一些“centos65weblogic”的相关资讯。那么小编在网络上汇集了一些对于“centos65weblogic””的相关文章,希望我们能喜欢,咱们一起来学习一下吧!

搭建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官方文档()。

表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官网

)上下载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官网()上下载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配置的话,在浏览器的地址栏中输入会打开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官网

)上下载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=$PATH:$JAVA_HOME/bin' >> /etc/profile

sudo source /etc/profile

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

图4.13 检验JDK是否安装成功

(3)从Tomcat官网()上下载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=$PATH:$CATALINA_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应用服务器下篇文章给大家讲解的内容是大型网站架构的技术细节:后端架构,后端的工作原理, 构造一个简单的后端应用程序觉得文章不错的朋友可以转发此文关注小编;感谢大家的支持

标签: #centos65weblogic #服务器搭建原理 #web服务器工作原理图