13.环境

随笔3个月前发布 造型师黄俊
36 0 0

一、介绍环境的基础介绍

1、什么是JDK?JDK的作用?
JDK是java语言的软件开发工具包,能解释java程序,编译java语言,没有jdk的话无法编译Java程序。
包含了各种类库和工具,机器不是直接识别语言的,会借助工具的编译器,可以理解为翻译官,将一门语言翻译为机器可以识别的语言,Jdk能对Java进行编译,我们的工具才能识别Java语言 ,
jdk就是一款语言编译工具,Tomcat 是基于Java语言编写的

jdk分为:linux中的jdk,windows中的jdk

2、apache-tomcat java应用服务器的目录
(1)bin目录:
bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)

(2)conf目录:
conf目录主要是用来存放tomcat的一些配置文件
server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码
web.xml可以设置tomcat支持的文件类型
context.xml可以用来配置数据源之类的
tomcat-users.xml用来配置管理tomcat的用户与权限
(3)
lib目录:
lib目录主要用来存放tomcat运行需要加载的jar包。
例如,像连接数据库的jdbc的包我们可以加入到lib目录中来。
(4)
logs目录:
logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对tomcat运行带来影响)
在linux环境中,控制台的输出日志在catalina.out文件中(重点)
查看日志 cat catalina.out
(5)
temp目录:
temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行
带来影响)
(6)
webapps目录:(在项目部署中非常重要)
webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程
序。以文件夹、war包、jar包的形式发布应用。
也可以把应用程序放置在磁盘的任意位置,在配置文件中进行映射
(7)
work目录:
work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。
清空work目录,然后重启tomcat,可以达到清除缓存的作用。

4、其他知识点:
查看tomcat服务器进程和启动情况 ps -ef |grep tomcat
在bin目录下启动tomcat命令: sh startup.sh或者./startup.sh
在bin目录下关闭tomcat命令: sh shutdown.sh
在浏览器输入如下网址
http://192.168.XX.XX:8080
http代表的是:采用的是超文本传输协议
192.168.XX.XX是:Linux系统的IP地址(因为测试环境是在Linux上面搭建的)
8080是:tomcat的默认端口号(因为项目是用tomcat服务器部署的)

5、linux服务器中日志的错误级别?(日志级别)
日志级别
日志一共分成5个等级,从低到高分别是:
DEBUG
INFO
WARNING
ERROR
CRITICAL
说明:
DEBUG:详细的信息,通常只出现在诊断问题上
INFO:确认一切按预期运行
WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。
ERROR:更严重的问题,软件没能执行一些功能
CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行
这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪。

13.环境
13.环境

6、tomcat、nginx和apache服务器的定义和区别
Apache是应用服务器:对于静态网页的支持是Apache的强项,但像php,cgi,jsp等
动态网页一般就需要Tomcat来处理;由于Tomcat本身也内含了一个HTTP服务器,
它也可以被视作一个单独的Web服务器,但是,不能将 Tomcat 和 Apache Web 服务器混淆,
Apache Web Server 是一个用 C 语言实现的 HTTP web server;
Apache,nginx,tomcat并称为网页服务三剑客。
Tomcat是Java应用服务器:它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
Nginx是轻量级的HTTP服务器:它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器

7、

(1)apache和tomcat的对比
相同点:
两者都是Apache组织开发的
两者都有HTTP服务的功能
两者都是免费的
(2)不同点:
Apache是Web服务器,Tomcat是应用(
Java)服务器
如果客户端请求的是静态页面,一般需要Apache服务器响应请求
如果客户端请求动态页面,则是Tomcat服务器响应请求。
可以理解Tomcat为Apache的一种扩展。
(3)apache、nginx和tomcat的优势比较
(一)Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。
Apache是静态解析,适合静态HTML、图片等
(二)
Nginx优点:负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache和tomcat。Nginx有动态分离机制,静态请求直接就可以通过Nginx处
理,动态请求才转发请求到后台交由Tomcat进行处理
(三)
Tomcat:动态解析容器,处理动态请求,tomcat处理动态请求的速度高于apache和nginx,是编译JSPServlet的容器
(四)
在日常工作中:
nginx一般用来做前端应用服务器
tomcat会用来做后端的java应用服务器

8、
什么是静态请求?(请求的是静态资源)
静态资源:指存储在本地硬盘内的数据,固定的数据,不需要计算的数据。
如:图片、字体、js文件、css文件等等。在用户访问静态资源时,服务器会直接将这些资源返回到用户的计算机内

9、什么是动态请求?(请求的是动态资源)
动态资源:指需要服务器根据用户的操作所返回的数据,以及存储在数据库的数据,经过一系列逻辑计算后返回的数据。动态请求一般都需要去请求数据库。
如:请求明天的天气信息数据、请求查看账户余额

10、Nginx服务器相关的功能如下:
Nginx的动静态分离机制功能:将一个请求中动态请求和静态请求分离出来
Nginx的正向代理服务器的功能
Nginx的反向代理服务器的功能
Nginx的负载均衡功能
(一)动静态分离

13.环境

nginx服务器动静态分离机制原理解释:
nginx是一个服务器,所有的请求都先请求到nginx,然后再由nginx对内网进行请求的分发到tomcat,然后tomcat处理完请求后将数据发送给nginx,然后
由nginx发送给用户,整个过程对用户的感觉就是nginx在处理用户请求。nginx请求分离需要进行配置,配置文件是conf文件夹下的nginx.conf文件中,
进行静态请求与动态请求的分离。
Tomcat应用服务器是用来处理Servlet容器和JSP的,虽然它也可以处理HTML等等一系列静态资源,但是效率不如Nginx,当用户访问静态资源时,让Nginx
将静态资源返回给用户;当用户访问动态资源时,将访问转到Tomcat应用服务器上,Tomcat将数据返回给Nginx,Nginx再返回给用户。

11、
Nginx的正向代理服务器

13.环境

Nginx的正向代理服务器
1、正向代理代理的是客户端
正向代理(Forward Proxy)是一种代理服务器,它位于客户端和服务端之间,代表客户端向其他服务器发送请求。
一般使用的场景就是,当客户端无法直接访问某些资源时,可以通过正向代理来访问。正向代理服务器会将客户端的请求转发给目标服务器,并将响应返回给客户端。正向代理服务器可以缓存请求的响应,从而提高访问速度,并且可以对客户端进行身份验证和授权。
13.环境

那么正向代理一般用在哪里,以下为常见的几种正向代理场景:
a、V/P/N
代表“虚拟专用网络”,这是一项保护互联网连接和在线隐私的服务。比如我们为了保护公司的隐私安全,设置公司的网络只有通过 VPN 登录后才能进行接入。
b、动态 IP 代理
动态 IP 代理最常用的场景就是网络爬虫,因为大多数网站为了避免被频繁的访问和抓取,会限制访问 IP,如果使用同一个 IP 进行访问,那么很快就会不限制无法访问。因为我们需要 动态 IP 服务器帮我们转发请求,从而避免被目标服务器检测出是在频繁抓取。
c、隐藏客户端 IP
隐藏客户端 IP 就是我们经常电影中看到的,黑客通过代理手段,隐藏自己的真实 IP,避免被其它发现自己的实际 IP,从而查到黑客实际所在地址。

2、服务器并不知道用户的存在

12、
Nginx的反向代理服务器
13.环境

Nginx的反向代理服务器
1、反向代理代理的是服务器(千万用户访问百度,由服务器A分发请求)
2、用户向服务器A发起请求,然后由服务器A去分发请求给到服务器B和服务器
C进行处理,用户并不知道是IP地址为多少的哪台服务器在处理自己的请求
反向代理定义;
反向代理是一种代理服务器,在客户端向服务器发送请求时,代理服务器从一组或多组后端服务器中获取资源并返回给客户端,客户端只知道反向代理的IP地址,不知道代理服务器后面的服务器簇的存在。与正向代理相反,反向代理是作为服务器端的代理,而不是作为客户端的代理,用于隐藏真实服务端。
四、反向代理的使用场景
a、堡垒机
堡垒机是一种安全审计系统,它管控着各种想登录服务器的权限或者是操作,能够监督员工们的操作,对员工们的行为起到约束监控作用。通过堡垒机我们可以管控员工对服务器的访问,保护真实服务器的安全。
b、nginx 负载均衡
负载均衡服务器(Load Balancer)是一种用于分配网络请求和流量的设备或软件。它的主要目的是在多个服务器(或计算资源)之间平均分配负载,以确保这些服务器能够高效地共同处理请求,提高系统的性能、可用性和稳定性。比如我们常见的使用 nginx 作为负载均衡服务器。

总结,正向代理和反向代理主要的区别在于代理的对象不一样,正向代理的客户端,对于服务端来说,访问的就是真实的客户端;反向代理代理的是服务端,对客户端来说,访问的就是真实服务服务端。
13、
Nginx的负载均衡
什么是负载均衡呢?就是我的项目部署在不同的服务器上,但是通过统一的域名进
入,nginx则对请求进行分发,减轻了服务器的压力。

Nginx的负载均衡
优点就是:可以减少服务器的压力,将原本一台服务器所要承受的访问量分给了多台,并提高了项目的可用性,当一台服务器挂掉的时候也不会导致整个项目瘫痪。
nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器。

=====================================
多有米项目相关面试题
1、请简述多有米环境的搭建、用到了哪些工具和流程介绍

Jdk 1.8以上

服务器 ( tomcat ,apache)

代码包 ( root前端,manage后端)

数据库 mysql

虚拟机 centos

数据包

简单流程:安装jdk》安装服务器》将代码包部署到服务器中》修改配置:ip,数据库等》安装数据库> 还原项目数据

在启动服务,启动数据库,开启对应开启的端口==》在浏览器中输入ip+端口

详细流程:

将下载的包上传到虚拟机上—安装jdk —解压tomcat 服务器—启动服务器—在浏览器中输入:ip+端口号,出现tomcat界面:表示服务器tomcat 是可以启动的—关闭服务器—删除webapps 下代码包;将自己的前后端代码包移动webapps下—在bin目录下:sh startup.sh 启动服务—配置前后端—启动数据库—创建新的数据库,(数据库名要和前后端的jdbc配置文件中的库名一致)—还原数据—再验证是否还原成功—编辑etc里的my.cnf—关闭防火墙,重启数据库,启动tomcat 服务器—在浏览器中输入网址+端口

2、查看当前端口被哪个应用程序占用了
lsof -i:端口号 查看占用端口
13.环境

netstat -nltp|grep 端口号

13.环境

3、Tomcat和Nginx的区别,nginx有哪些优点?
(1)Tomcat和Nginx的区别:tomcat是处理动态资源,nginx是处理静态子资源
(2)nginx 优点:a、动静态分离、b、负载均衡 c、正向代理、d、反向代理

4、日志的级别有几种?
(1)日志级别5种
(2)debug、info、warning、error(找bug)、critical

5、怎么查看实时日志? 在哪个目录下面?用的什么命令查看?如果报错的日志太多你是怎么去定位的?怎么去找到报错日志的?
(1)tail -f
(2)logs 下catalina.out
(3) tail -f 或者 cat 日志文件 或者 vim 日志文件
(4)cat 日志文件|grep error 或vim 日志文件 用/或?搜索
(5)查看有error 报错显示

6、Tomcat的启动命令和Tomcat的端口号在哪里修改?
(1)Tomcat的启动命令:sh startup.sh 或者./ startup.sh
(2) tomcat 端口 在conf 中server .xml 文件中找到conner开头的代码,修改端口号 (69号)

13.环境
13.环境

7、jdbc你怎么了解的? 全称是什么?
(1) jdbc是java数据库连接(jDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现)
(2)java databases connecttivity 是全称

8、数据库当中怎么不区分大小写?
(1)vim /etc/my.cnf 中添加一条语句:lower_case_table_names = 1 (1是不区分大小写,0是区分大小写)

9、你们公司的测试环境是由谁搭建的?
(1)运维或者测试经理,或者你

10、搭建测试环境的工具有哪些?(和第一题一样)
(1)jdk、服务器(云服务器,容器云)、数据库、代码包

11、jdk是什么,有什么作用?
(1)jdk是编译代码,提供java运行环境

12、你们公司的测试环境是基于什么系统搭建的?
系统:centos
dym: linux+tomcat+mysql+java

13、帮我解释一下webapps是什么?webapps目录下面存放的东西是什么?
(1)webapps是存放应用程序,当tomcat启动会自动加载代码包发布应用
(2)存放代码包(war、jar形式)

14、http和HTTPS是什么?各自的端口号是什么?
(1)
HTTP定义:HTTP 是超文本传输协议
HTTPS定义:HTTPS 是超文本 安全传输协议 http+ssl证书
(2)
HTTP端口:80
HTTPS端口:443

15、nginx的端口号在哪个文件里面修改?为什么访问多有米前后台的服务器ip地址和访问mysql数据库的服务器ip地址是一致的?
(1) NGINX/conf/inx.conf 打开,修改listen后面的端口
(2)数据库和服务器都在同一台服务器

16、Tomcat的默认端口号是多少?nginx的默认端口号是什么?mysql的默认端口号是多少?假如端口号80、8080、3306被占用了怎么办?用什么命令进行查看?怎么去结束这进程?
(1)Tomcat的默认端口号:8080
(2)nginx的默认端口号是:80
(3)mysql的默认端口号是:3306
(4)修改端口或者关闭服务,释放端口
(5)lsof -i:端口 或netstat -nltp|grep 端口号
(6)kill -9 进程号

17、mysql数据库的配置文件存放在哪里?
cat /etc/my.cnf

18、什么叫动态资源?什么叫静态资源?
动态:运行的资源(计算,运行后的结果)
静态:未运行的资源(图片,字体,格式),不需要经过处理文件
动态资源:动态资源是指需要经过服务器端处理后才能返回给客户端的文件。通常,这些文件包含动态生成的内容,例如动态网页、数据库查询结果等。服务器端会根据客户端请求的参数和逻辑进行处理,然后生成相应的内容返回给客户端。动态资源的处理通常需要通过后端的应用程序(如PHP、Python、Java等)来实现。
静态资源:静态资源是指可以直接从服务器端返回给客户端的文件,不需要经过服务器端处理的文件。这些文件在服务器上存储为静态文件,例如HTML、CSS、JavaScript、图像、字体等。服务器在接收到客户端请求时,直接将对应的静态文件发送给客户端,无需额外的处理。

19、nginx web应用服务器有哪些优点?
(1)负载均衡
(2)动静态分离
(3)正向代理
(4)反向代理
20、对nginx的正向代理和反向代理有了解过吗?
正向代理:客户端通过代理服务器来访问目标目标服务器 ;比如:访问github 网络限制,
反向代理:客户端通过代理服务器来访问多个目标服务器中的一个。比如:堡垒机、

21、你们公司的服务器一般是怎么进行配置的?(根据项目来衡量)
一个项目: 1个服务器前端,3个-5个服务器后端,数据库 服务器 4台(一主三从,三主三从,mgr集群) 10台服务器

22、假如你在前端页面点击一个搜索按钮的时候,有弹框提示:系统异常,这个时候你应该怎么去定位和分析这个问题?看日志怎么去看?
一、
(1·)页面错误提示:系统提示 404或502
(2)查看接口:请求参数正确,返回数据错误,后端bug;如果请求参数正确,返回参数正确,页面是显示错误就是前端bug
(3)查看后台日志logs (具体报错)
二、tail -f 日志文件 查看日志
根据日志等级:查看报错

23、你们公司有多少张表?能说出常用的几张表的名字吗?和表里面的具体的一些字段的名字?
(1)203表 根据项目大小,参考
(2)
13.环境

(3)
13.环境

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...