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

搭建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)。

 

下面分别在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安装包下载即可。

 

注意:一些项目出于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的路径。

 

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

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

 

配置完环境变量之后,就可以检验JDK是否安装完成了。打开一个新的CMD窗口(旧的CMD窗口不识别新设置的环境变量),执行java-version命令,如果命令执行后显示当前的JDK版本的话,即说明JDK安装成功。

 

注意:如果之前安装了其他版本的JDK,需要先卸载原有的JDK再安装新的JDK,卸载JDK需要在“应用和功能”中卸载,这样才能把原有的JDK卸载干净。另外,这里的环境变量配置是以JDK 11为例的,其他版本的JDK在环境变量配置时可能会有所区别。

(3)从Tomcat官网(

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

 

注意:很多项目都选用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的默认网页。

注意:Tomcat除了上述启动方式以外,还可以通过“Windows服务”的形式启动,即Tomcat的启动无须人工执行,计算机会自动在后台进程中执行Tomcat程序,并且没有如图4.9所示的窗口。这种启动方式一般是在Windows作为服务器系统的情况下,而在作为开发时使用的Windows系统中,不建议以Windows服务的形式启动Tomcat,这样会与IDE(IDE指的是开发工具,如Eclipse、VS Code等)调试后端应用程序时产生冲突。

 

(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压缩包作为下载对象。

(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/

 

解压完毕后,需要配置环境变量才能让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所示。

 

(3)从Tomcat官网(

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

注意:前面在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/

 

(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的端口。

版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

猜你还会喜欢下面的内容

    无相关信息

中国领先的互联网域名及云服务提供商

为您提供域名,比特币,P2P,大数据,云计算,虚拟主机,域名交易最新资讯报道

域名注册云服务器