APP客户端网站建设wordpress 文章标题列表
目录
一 、WEB技术简介
HTTP协议
B/S 结构
前端三大核心技术简介
HTML
CSS
JavaScript
二 、WEB框架
web资源和访问
后台应用架构
三、tomacat的介绍
四、tomcat的部署
tomcat的反向代理
tomcat的负载均衡
memcached的安装与启动
tomcat的session会话保持
一 、WEB技术简介
HTTP协议
基本介绍:
 • HTTP:超文本传输协议,是从万维网服务器传输超文本到本地浏览器的传送协议
 • HTTP是一种应用层协议,是基于TCP/IP通信协议来传送数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0
 • 协议:为了是数据在网络源头到达目的,网络通信的参与方必须遵守相同的规则,这套规则曾为协议,他的最终体现为在网络上传输的数据报的格式 ,通俗的来讲协议就是要保证网络通信的双方,能够互相对接,互相联系的暗号。
工作过程:
 当我们在浏览器输入一个网址,此时浏览器就会给对应的服务器发送一个HTTP请求,对应的服务器收到这个请求之后,经过计算就会返回一个HTTP响应,并且当我们访问一个网站的时候,可能涉及到不止一次的HTTP请求和相应的交互过程。
 HTTP协议的特点:一发一收,一问一答。
B/S 结构
B/S架构,即浏览器/服务器架构,是一种网络架构模式,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户端只需要安装一个浏览器,通过Web服务器与数据库服务器进行数据交互。B/S架构利用了Web浏览器技术和Internet协议,实现了异构系统的连接和信息的共享。
B/S架构的分层:
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
第三层数据层:主要是接受客户端请求后独立进行各种运算。
前端三大核心技术简介
HTML
HTML(全称为“超文本标记语言”)是一种用于创建Web页面的标记语言。它是Web开发的基础,允许开发者定义页面的结构、内容和样式。HTML使用一些标记或“标签”来描述文本和媒体内容的结构和格式,这些标签可以指示网页浏览器如何显示内容,包括标题、段落、列表、超链接、图像、音频、视频等等。HTML还可以与其他Web技术(如CSS和JavaScript)结合使用,以实现更复杂和交互性的Web应用程序。
CSS
CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。
 CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,而且还可以针对不同的浏览器设置不同的样式。
JavaScript
JavaScript是一门跨平台、面向对象的脚本语言(不需要编译,直接解释运行即可),来控制网页的行为,它能使网页可交互。
二 、WEB框架
web资源和访问
Web 资源的类型
- 静态资源
 
定义:指内容不随时间变化而变化的资源。 例子:HTML 文件、CSS 样式表、JavaScript 文件、图像文件(如 JPEG、PNG)、音频文件、视频文件等。
特点:一旦创建,在没有人为修改的情况下,每次访问都返回相同的内容。
- 动态资源
 
定义:其内容是根据特定的请求动态生成的资源。
例子:由服务器端脚本(如 PHP、Python、Java 等语言编写的服务器端程序)生成的网页内容。 特点:每次请求可能会得到不同的响应,因为资源的生成取决于请求的参数、用户身份、数据库状态等多种因素。
Web 资源的访问方式
- 通过浏览器访问 :这是最常见的方式。用户在浏览器的地址栏中输入 URL(统一资源定位符),浏览器向服务器发送请求,服务器返回相应的 Web 资源,浏览器解析并显示这些资源。 例如,当你在浏览器中输入一个网站的地址,如 “www.example.com”,浏览器会向该网站的服务器发送请求,获取 HTML、CSS、JavaScript 等资源,并将其渲染成用户可以看到的网页。
 - 通过 API 访问 :许多 Web 应用程序提供 API(应用程序编程接口),允许其他程序以编程的方式访问其资源。 例如,一个天气应用程序可能提供一个 API,让其他开发者可以获取特定地区的天气信息。开发者可以使用编程语言(如 Python、Java、JavaScript 等)发送 HTTP 请求到该 API 的端点,获取以 JSON 或 XML 格式返回的天气数据。
 - 命令行工具访问 有些工具可以通过命令行界面访问 Web 资源。例如,使用 “curl” 命令可以发送 HTTP 请求并获取资源的内容。 比如,在命令行中输入 “curl https://www.example.com”,会返回该网站的 HTML 内容。
 
影响 Web 资源访问的因素
- 网络连接: 稳定的网络连接是确保顺利访问 Web 资源的基础。如果网络速度慢或不稳定,可能会导致资源加载缓慢或失败。 例如,在网络拥堵的情况下,下载大文件或访问视频流可能会变得非常缓慢。
 - 服务器性能 :服务器的处理能力、内存、存储等性能因素会影响对 Web 资源的响应速度。 如果服务器负载过高,可能会导致响应时间延长,甚至无法响应请求。
 - 安全性设置 :防火墙、代理服务器、HTTPS 加密等安全设置可能会限制对某些 Web 资源的访问。 例如,一些公司的网络可能会设置防火墙,阻止员工访问特定类型的网站。
 - 资源权限 :Web 资源可能具有不同的访问权限设置。例如,某些网页可能需要用户登录才能访问,或者某些 API 可能需要授权才能使用。 如果没有正确的权限,用户将无法访问相应的资源。
 
后台应用架构
单体架构
微服务 
三、tomacat的介绍

四、tomcat的部署
常见部署方式

- standalone模式,Tomcat单独运行,直接接受用户的请求,不推荐。
 - 反向代理,单机运行,提供了一个Nginx作为反向代理,可以做到静态由nginx提供响应,动态jsp代理给Tomcat LNMT:Linux + Nginx + MySQL + Tomcat ;LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
 - 前置一台Nginx,给多台Tomcat实例做反向代理和负载均衡调度,Tomcat上部署的纯动态页面更 适合 LNMT:Linux + Nginx + MySQL + Tomcat
 - 多级代理 LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat
 
安装tomcat
安装3个主机,分别为nginx、tomcat-node1、tomcat-node2
在两台tomcat主机上安装java环境
yum install java-1.8.0-openjdk.x86_64 -y[root@tomcat-node1 ~]# ll /etc/alternatives//jre_openjdk/
总用量 184
-rw-r--r-- 1 root root   1522  8月 30  2022 ASSEMBLY_EXCEPTION
drwxr-xr-x 2 root root    188  8月 22 09:19 bin
drwxr-xr-x 9 root root   4096  8月 22 09:19 lib
-rw-r--r-- 1 root root  19274  8月 30  2022 LICENSE
-rw-r--r-- 1 root root 157063  8月 30  2022 THIRD_PARTY_README
 
在两台tomcat主机上安装软件包并启动tomcat
[root@tomcat-node1 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/
[root@tomcat-node1 ~]# cd /usr/local/
[root@tomcat-node1 local]# ls
apache-tomcat-9.0.93  etc    include  lib64    sbin   src
bin                   games  lib      libexec  share
[root@tomcat-node1 local]# ln -s apache-tomcat-9.0.93 tomcat
[root@tomcat-node1 local]# cd tomcat/
[root@tomcat-node1 tomcat]# ls
bin           CONTRIBUTING.md  logs       RELEASE-NOTES  webapps
BUILDING.txt  lib              NOTICE     RUNNING.txt    work
conf          LICENSE          README.md  temp
[root@tomcat-node1 tomcat]# cd bin/
[root@tomcat-node1 bin]# ls
bootstrap.jar                 configtest.sh     shutdown.sh
catalina.bat                  daemon.sh         startup.bat
catalina.sh                   digest.bat        startup.sh
catalina-tasks.xml            digest.sh         tomcat-juli.jar
ciphers.bat                   makebase.bat      tomcat-native.tar.gz
ciphers.sh                    makebase.sh       tool-wrapper.bat
commons-daemon.jar            setclasspath.bat  tool-wrapper.sh
commons-daemon-native.tar.gz  setclasspath.sh   version.bat
configtest.bat                shutdown.bat      version.sh
[root@tomcat-node1 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
 
网页测试:


生成tomcat的启动文件
[root@tomcat-node1 conf]# vim tomcat.conf
[root@tomcat-node1 conf]# vim /lib/systemd/system/tomcat.service
 

 使/usr/bin/tomcat具备可执行的权限
[root@tomcat-node1 conf]# vim /usr/bin/tomcat
[root@tomcat-node1 conf]# chmod +x /usr/bin/tomcat
[root@tomcat-node1 conf]# tomcat start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@tomcat-node1 conf]# vim /lib/systemd/system/tomcat.service 

 生成启动文件
[root@tomcat-node1 conf]# useradd -s /sbin/nologin -M tomcat
[root@tomcat-node1 conf]# chown -R tomcat.tomcat /usr/local/tomcat/
[root@tomcat-node1 conf]# systemctl daemon-reload
[root@tomcat-node1 conf]# systemctl enable --now tomcat
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /usr/lib/systemd/system/tomcat.service.
 
tomcat的反向代理

[root@tomcat-node1 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.93.tar.gz  test.jsp
[root@tomcat-node1 ~]# cp test.jsp /usr/local/tomcat/webapps/ROOT/
[root@tomcat-node1 ~]# scp test,jsp root@172.25.254.20:/usr/local/tomcat/webapps/ROOT/
 

nginx代理配置
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@nginx-node1 ~]# nginx -s reload
 
 
tomcat的负载均衡
使用源地址哈希算法
[root@nginx-node1 ~]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@nginx-node1 ~]# nginx -s reload 


测试:在不同的浏览器测试www.zf.org/test.jsp
memcached的安装与启动
[root@tomcat-node1 ~]# dnf install memcached -y
 
相关参数
set、add、replace、get、delete
#前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令,都使用如下所示的语法:
command <key> <flags> <expiration time> <bytes>
<value>
#参数说明如下:
command set/add/replace
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节数
value 存储的值(始终位于第二行)
#增加key,过期时间为秒,bytes为存储数据的字节数
add key flags exptime bytes 
[root@tomcat-node1 ~]# vim /etc/sysconfig/memcached
[root@tomcat-node1 ~]# systemctl start memcached.service 
[root@tomcat-node1 ~]# netstat -antlupe | grep memcached
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      977        77335      33552/memcached     
tcp6       0      0 ::1:11211               :::*                    LISTEN      977        77336      33552/memcached   

使用telnet测试
[root@tomcat-node2 ~]# yum install telnet -y
[root@tomcat-node2 ~]# telnet 172.25.254.20 11211
Trying 172.25.254.20...
Connected to 172.25.254.20.
Escape character is '^]'.
add key1 0 20 2
ll
STOREO
get key1
VALUE key1 0 2
ll
END
 
tomcat的session会话保持
2台tomcat主机传输相关软件包
[root@tomcat-node1 ~]# cd jar/
[root@tomcat-node1 jar]# ls
asm-5.2.jar                memcached-session-manager-2.3.2.jar      msm-kryo-serializer-2.3.2.jar  spymemcached-2.12.3.jar
kryo-3.0.3.jar             memcached-session-manager-tc9-2.3.2.jar  objenesis-2.6.jar
kryo-serializers-0.45.jar  minlog-1.3.1.jar                         reflectasm-1.11.9.jar 
将spymemcached.jar、memcached-session-manage等相关的jar文件都放到Tomcat的lib目录下
[root@tomcat-node1 jar]# cp *.jar /usr/local/tomcat/lib/
[root@tomcat-node1 jar]# cd /usr/local/tomcat/lib/
[root@tomcat-node1 lib]# ls
annotations-api.jar       jasper.jar                               servlet-api.jar          tomcat-i18n-ko.jar
asm-5.2.jar               jaspic-api.jar                           spymemcached-2.12.3.jar  tomcat-i18n-pt-BR.jar
catalina-ant.jar          jsp-api.jar                              tomcat-api.jar           tomcat-i18n-ru.jar
catalina-ha.jar           kryo-3.0.3.jar                           tomcat-coyote-ffm.jar    tomcat-i18n-zh-CN.jar
catalina.jar              kryo-serializers-0.45.jar                tomcat-coyote.jar        tomcat-jdbc.jar
catalina-ssi.jar          memcached-session-manager-2.3.2.jar      tomcat-dbcp.jar          tomcat-jni.jar
catalina-storeconfig.jar  memcached-session-manager-tc9-2.3.2.jar  tomcat-i18n-cs.jar       tomcat-util.jar
catalina-tribes.jar       minlog-1.3.1.jar                         tomcat-i18n-de.jar       tomcat-util-scan.jar
ecj-4.20.jar              msm-kryo-serializer-2.3.2.jar            tomcat-i18n-es.jar       tomcat-websocket.jar
el-api.jar                objenesis-2.6.jar                        tomcat-i18n-fr.jar       websocket-api.jar
jasper-el.jar             reflectasm-1.11.9.jar                    tomcat-i18n-ja.jar 
修改tomcat配置 ,其可内容参考官方网址:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
[root@tomcat-node1 lib]# vim /usr/local/tomcat/conf/context.xml
[root@tomcat-node1 lib]# systemctl restart tomcat
[root@tomcat-node2 lib]# vim /usr/local/tomcat/conf/context.xml
[root@tomcat-node2 lib]# systemctl restart tomcat
 

 修改nginx配置
[root@nginx-node1 ~]#  vim /usr/local/nginx/conf.d/vhosts.conf 
 
测试:

关闭172.25.254.10 的tomcat服务

