以下文章预告... 为了实现3层架构的完整性,我计划将现有的Nginx服务器和Tomcat服务器与数据库服务器连接起来。
一、概述
探讨三层架构。三层架构通常由 Web 服务器 - 应用服务器 - 数据库服务器组成。在提供服务时,这个基本框架不会改变,但根据架构的不同,细致的配置和环境设置可能会有所不同。通过实践,我们将搭建 Nginx 服务器,并将其作为 Web 服务器运行。如果 Nginx 服务器正常运行,我们将基于 Tomcat 安装应用服务器。在与 Nginx 服务器连接后,确认 Web 服务器是否能够连接到应用服务器。
Ⅱ. 三层架构

三层结构如上所述的图片显示,在提供一项服务时 采用三台服务器的结构这指的是直接面向客户(Client)进行的前端工作。 Web服务器当客户使用服务时,系统可以引导客户执行特定操作,或者与数据库进行交互,从而向客户展示所需的信息。 WAS服务器位于WAS服务器上。 数据库服务器 该系统可以用于查询、插入、修改或删除数据库中的数据。数据库服务器是用于存储数据的数据库。在提供服务时,这个基本框架不会改变。 建筑因此,具体实施哪些政策来提供服务,可能会根据情况进行调整。
※ 建筑系统架构是指描述系统的组成、功能、以及各个组成部分之间的关系,以及系统与外部环境之间的关系。此外,它还包括对系统组件的设计和实现方面的指导。 换句话说,当我们创建一个网站时,我们需要考虑网站的设计、用户注册时收集哪些个人信息、不同类型的论坛应该分配哪些权限(例如,普通用户、非用户等)、以及在线商店如何处理用户评论、是否允许非用户下单等。 换句话说,系统架构就是根据特定网站的目的,全面地规划和设计整个服务如何提供和呈现,以及如何进行管理。 值得注意的是,系统架构的种类非常多,需要学习的内容也非常广泛。如果您想了解更多,建议您进行搜索。
也就是说,当用户输入并访问“naver.com”时,WEB服务器会…… 通过IP地址访问我们只是… www.naver.com 即使在输入“이라고”时,也会在不显眼的区域进行。 域名系统服务器通过这种方式,可以访问Ne이버的Web服务器。由于Web服务器负责连接到Web服务器,因此Web服务器可以提供… 多种服务每次我们请求时,它都会被调用。例如,当我们登录时,Web服务器会调用WAS服务器上实现的登录相关服务,或者当我们点击Naver上的新闻、购物、体育等标签时,Web服务器也会调用WAS服务器上实现的相应服务。 最终,WAS服务器实际上起到了提供服务的角色。 然而,用户登录时的个人信息、搜索时呈现的各种信息、新闻、购物商品等庞大的数据,并非存储在Web服务器上。 数据库服务器因此,WAS服务器与数据库服务器连接。 检索并获取与所提供的服务相关的具体数据。 例如,当在博客上发布文章时,WASP服务器可以向数据库服务器发送请求,要求将新发布的文章作为数据进行存储、修改或删除。数据库服务器则负责实际的存储、修改和删除操作,并负责数据的存储。 可以将数据库服务器理解为,它存储了我们在网站上能够访问的各种数据。
※ 由于这是一种简化的三层架构,因此还有许多相关内容需要进一步学习和补充。例如,如何设计网络架构和防火墙,以及如何连接多台 Web 服务器,这些都需要在后续的学习中逐步完善。
Ⅲ. Nginx
在开始实践之前,了解一些基本命令会有帮助。
指令 | 功能说明 |
sudo apt install nginx (软件包名称) | 以管理员权限安装软件包。 |
sudo apt remove nginx | 删除由管理员权限安装的软件包。 |
sudo systemctl stop nginx (服务器) | 停止由管理员权限运行的服务器。 |
sudo systemctl 启动 nginx | 以管理员权限启动服务器。 |
sudo systemctl 重启 nginx | 以管理员权限重新启动服务器。 |
sudo systemctl 启用 nginx | 以管理员权限,将服务器注册为启动程序(类似于 Windows 的启动程序)。 |
使用 sudo systemctl 禁用 Nginx | 使用管理员权限,从启动程序中移除服务器。 |
这些是与服务器安装、删除、启动、重启、停止等操作相关的系统命令。 了解这些命令可以帮助您更好地管理服务器。
我们将安装最常用的 Web 服务器 Nginx,并进行三层架构的实践。虽然也有 Tomcat,但它们各有优缺点。简单来说, 在Nginx中,当流量达到一定程度时,其性能通常优于Tomcat。 Tomcat 是一款 由于存在大量的子项目,在功能和模块扩展方面具有优势。
安装 Nginx 服务器。
sudo apt update
使用 sudo apt 安装 nginx

※ 安装 nginx 服务器后,它会被注册为可以通过 systemctl (系统命令) 控制的对象,并且服务器会自动启动。可以通过 "netstat -anp | grep nginx" 命令查看。
2. 尝试连接 Nginx 服务器
当我们考虑文件结构时,`/etc` 通常包含配置文件,而 `/var` 通常包含数据文件或日志文件。 同样,在 Nginx 服务器中也是如此。 /etc/nginx其中包含配置文件 /var/www/html其中包含实现代码文件。

您可以在`/sites-available/default`目录下找到详细的配置信息。

稍后,在与 WAS 服务器集成时,我还会再次查看这些设置。

/var/www/html现在index.html 我计划创建一个文件,并尝试通过该路径连接到Web服务器。之后,我会使用vi编辑器来编辑index.html我将创建一个模板,并在其中简单地填写内容。

我按照这种方式来写,如果大家有任何建议或技巧,请告诉我。 Vim 安装软件包后,您可以使用 vi 编辑器,从而更轻松地进行编辑。
cat > 파일명
cat >> 파일명在使用时,可以查看文件内容 “猫” 通过指令来“> 只需输入文件名,就可以生成名为该文件名的文本文件。如果文件名相同,则...>“在这种情况下,内容会被覆盖,以下是……”>>“在这种情况下,内容会得到补充。”

现在,我们需要检查已创建的 index.html 文件在 Nginx 服务器上是否能正常显示。 按照之前的提示,使用 "netstat -anp | grep nginx" 命令,确认服务器 请听 确认状态是否正确后,如果确认无误,立即尝试连接。

“ifconfig”可以通过该链接访问,进入后,


可以清楚地看到效果!
※ 提示 HTTP 响应 为了方便大家了解,我分享一些相关的状态码。这里只是一个简要的总结,建议大家查阅更详细的信息。
状态码 | 状态说明 |
第一百组 | 客户端已向服务器发送请求,而服务器也在等待响应。 |
200系列 | 当客户端和服务器能够正常通信时,就可以看到。 |
300系列 | 服务器向客户端发出请求,表示为了完成请求,需要进行额外的操作(例如重定向)。 |
400系列 | 当客户端无法从服务器获取所需的资源时,会发生这种情况。 |
第五代 | 这表示服务器本身存在问题。 |
Ⅳ. Tomcat
接下来,安装 Tomcat。 WAS服务器我们计划开始进行实践,利用Tomcat。虽然Tomcat的安装似乎有些复杂,但实际上并不难。
Apache Tomcat® - Apache Tomcat 9 软件下载

首先,从上方 在 Tomcat 网页上找到 tar.gz 文件您可以下载文件。最新的版本是 9.0.82,您也可以在网页上下载其他版本。需要安装的文件位于程序安装相关目录中。 /usr/local 只需在内部使用“wget”命令进行下载。然后,进入/usr/local 目录,解压缩 wget 下载的 Tomcat 文件。

文件会以解压缩后的状态存在。您可以保留原始的文件名,也可以自由地更改。

进入内部,你会发现这样的情况。 /conf这指的是与设置相关的目录。 /lib这里是数据库服务器的访问入口,之后计划在此处安装用于连接数据库服务器的连接器。 /web应用 目录是用于注册与Web服务相关的文件,如JSP、CSS、HTML等。然后,安装Java语言。
sudo apt install openjdk-17-jdk安装Java 17版本。最近,Spring框架也开始支持17版本,而且8版本的使用期限即将到期,因此建议大家转向17版本。现在,为了验证Tomcat服务器是否正常运行,请启动它。 /usr/local/apache-tomcat-9.0.82/bin 进入该路径 startup.sh 只需运行脚本文件即可。由于 Tomcat 不是通过“apt”命令安装的,而是单独安装的,因此服务器不会自动启动。

服务器关闭 shutdown.sh 只需运行脚本文件即可。

正常运行,并且服务器 请听 可以通过确认其状态。例如,对于 Tomcat,默认端口是 8080这是一个重要的信息,建议您记住。

因此,现在可以通过Tomcat服务器的IP地址和8080端口号进行连接,并确认其正常运行。 接下来,就可以通过这些信息与Web服务器建立连接。 Nginx 服务器关于 /etc/nginx/sites-available/default 修改配置文件。

因此,添加了 proxy_pass 和 index.jsp 文件。 “使用 sudo 命令重启 Nginx”您可以访问该网站,并通过其提供的 WEB 服务器 IP 地址进行访问。


可以清楚地看到与 Tomcat (WAS) 服务器的连接正常。
评论
我认为搭建和连接 Web 服务器和 WAS 服务器并不困难。之后,数据库服务器的搭建可能会比较复杂,因此我打算重新搭建,就像之前一样,从头开始学习。😄
登录