Tomcat
安装Tomcat
进入 Tomcat 官网:https://tomcat.apache.org/
介绍
Tomacat是由Apache推出的一款免费开源的Servlet容器,可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,在处理静态Html上的能力略逊一筹。
访问 Tomcat
当我们运行 Tomcat 之后,就可以在浏览器中通过localhost:8080来进行访问。如下图所示
Tomcat 的目录结构
/bin:存放用于启动及关闭的文件,以及一些脚本。其中以*.sh结尾的是linux下运行的文件,window下是.bat文件。
/conf:配置文件及相关的信息。容器的主配置文件为server.xml。
/log:日志记录文件。
/webapps:存放Web应用的相关文件。
/lib:存放以.jar文件,各种依赖
/webapps:里面存放我们的应用,Tomcat会自动找到。我们会自动访问ROOT下面的index.jsp页面。
Tomcat 的配置文件
catalina.policy: 当基于 -securty 选项启动 Tomcat 实例时会读取此配置文件。此文件是 Java 的安全策略配置文件,用于配置访问 codebase(代码库)或某些 Java 类的权限
catalina.properties: Java 属性定义文件,设定类加载器路径、安全包列表和一些调整性能的参数信息
context.xml: 为部署与此 Tomcat 实例上的 web 应用程序提供的默认配置文件,每个 webapp 都可以使用独有的 context.xml,通常放置于 webapp 目录的 META-INF 子目录中,常用于定义会话管理器,Realm 和 JDBC 等
logging.properties: 定义日志相关的配置信息,如日志级别、文件路径等
server.xml: Tomcat 核心配置文件,包含 Service、Connector、Engine、Realm、Valve、Hosts 主组件的相关配置信息
tomcat-users.xml: 包含 Realm 认证时用到的相关角色、用户和密码等信息;Tomcat 自带的 manager 默认情况下会用到此文件;在 Tomcat 中添加火删除用户,为用户指定角色等将通过编辑此文件实现
web.xml: 为部署与 Tomcat 实例上的所有 web 应用程序提供部署描述符,通常用于为 webapp 提供默认的 servlet 定义和基本的 MUIME 映射表
部署单个 HTML
可以将自己写好的单个 HTML 部署到 Tomcat 中,方法如下:
- 先创建好 html 文件(hello.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>将 HTML 部署到 Tomcat 上</title>
</head>
<body>
<div>hello</div>
</body>
</html>
- 将创建好的 html 文件拷贝到 Tomcat 的 webapps/Root 目录中
- 启动 Tomcat,在浏览器的网址栏输入 127.0.0.1:8080/hello.html 就可以访问到刚刚部署的 HTML
Nignx
介绍
Nginx是一款高性能的Web服务器,最初由俄罗斯程序员Igor Sysoev开发,自2004年问世以来,凭借其高性能、高可靠、易扩展等优点,在反向代理、负载均衡、静态文件托管等主流场合得到了广泛的应用。
特点
高性能:相比于其他Web服务器如Apache,在正常请求以及高峰请求期,可以更快地响应请求。
高可靠:Nginx采用多进程模型,分为主进程和工作进程。主进程负责监视工作进程,当工作进程异常退出时,可以快速拉起一个新的工作进程,从而为用户提供稳定服务
高并发:Nginx通常作为网关级服务,其支持的并发量通常在万级别,经过优化甚至可以达到十万级别。
易扩展:Nginx是模块化设计,具有极高的扩展性,使用者可以根据自身需求,定制开发相应模块。
热部署:Nginx提供了优雅重启以及平滑升级的方案,使用户在修改配置文件或者升级Nginx时,不会影响线上服务。
跨平台:支持Linux、Windows、macOS多种平台。
应用场景
一、HTTP服务器
Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。
二、静态服务器
静态服务器,通常会提供一个上传的功能,其他应用如果需要静态资源就从该静态服务器中获取
三、反向代理
反向代理使用proxy_pass指令来配置,如
server {
listen 80;
location / {
proxy_pass http://10.205.18.30:5000;
}
}
如此访问http://localhost:80时就会被代理到http://10.205.18.30:5000
还可以进一步配置成server_group的形式,为后面的负载均衡做准备:
upstream api_server {
server 10.205.18.30:5000;
}
server {
listen 80;
location / {
proxy_pass http://api_server;
}
}
负载均衡
Nginx支持三种负载均衡模式:
round-robin,轮询,这也是默认的模式
least-connected,请求会被转发到当前连接数最少的节点
ip-hash,基于请求方的IP地址的Hash值决定转发目标