发表于: 2017-07-19 14:43:07

3 1051


今天完成:

看任务四要求。翻了下师兄日报。

任务三总结:

1、jar包和war包是什么,区别?

可以理解为一个项目的压缩文件,war是web项目的jar。jar包可以通过java c 编译运行?? war包要放在服务器的容器(tomcat/resin)里部署运行。

maven中的打包方式:maven的pom文件可以配置<packaging>war</packaging>


2、nginx服务器有什么作用?什么叫反向代理?为什么要使用反向代理?

之前日报中有。

nginx服务器是反向代理服务器,接收所有用户的请求后分配给服务器处理。

反向代理是相对正向代理而言,正向代理 是 用户通过代理服务器访问指定的处理请求的服务器,正向代理服务器相当于中介。

反向代理是用户通过反向代理的命名空间发送请求,反向代理来交给某个服务器处理。


3、tomcat、jetty、resin各容器有什么区别?如何优化这些容器配置?

区别:

用过的:服务器上用的tomcat和resin,idea自带有jetty。

tomcat 配置文件:

![image.png](http://upload-images.jianshu.io/upload_images/291942-cef0549ac14e2e11.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

使用tomcat时,把war包放在tomcat的WebRoot文件夹中,修改 tomcat 的 server.xml ,

server.xml里加入:

 <Host name="123.206.213.250"  appBase="/home/ubuntu/tomcat/WebRoot" unpackWARs="true" autoDeploy="true">

 <Context path="123.206.213.250/task2"  docBase="task2.war" debug="0" privileged="true"/>

修改hosts文件:

C:\Windows\notepad.exe C:\Windows\System32\drivers\etc\hosts


使用resin时候,也是把war包放在webapps里。resin.xml 里添加一行“web-app” :

<web-app id="/task2" root-directory="webapps/task2" />

访问:http://123.206.213.250:8080/task2/a/student/8

resin中可以放多个war,加上多行web-app


如何优化配置:


4、什么是ssh?如何在linux服务器上从网站下载文件?

ssh:

一种网络协议。用于计算机之间加密登录。

ssh保证安全的方式是采用公钥加密。

用户登录远程主机时发送请求——远程主机收到后发送公钥给用户——用户使用公钥加密登录密码,发送给远程主机—— 远程主机用私钥解密登录密码,密码正确则同意登录。


在上述过程中,如果有人截获登录请求,伪造公钥发给用户,用户再把自己密码发送给伪造的远程主机后,就会造成密码泄露。——中间人攻击(公共wifi 的危险)


SSH采用 口令登录 / 公钥登录  应对。

如下:第一次登录远程主机时,远程主机发送一个提醒,提醒可能存在风险,并且提醒里有一个公钥指纹,问用户是否想继续连接。而这个公钥指纹,需要用户自己确认是否与远程主机公示的一致?!!! 感觉这种方式很鸡肋啊。

用户同意登录后再输入密码。


公钥登录:

用户将自己公钥储存在远程主机,用户登录时,远程主机向用户发送字符串,用户用私钥加密后发回远程主机,远程主机用用户的公钥解密成功后允许登录。



下载文件用 wget ,一种类似迅雷的下载工具。

下载单个文件:wget +资源地址 如: wget http://man.linuxde.net/testfile.zip

下载多个文件:wget -i filelist.txt  filelist.txt 里保存要下载的多个url 

用wget下载方法学习链接:http://man.linuxde.net/wget

用apt-get 是一种软件安装方式。我现在用到的从网站下载文件也就是安装软件了。因此把apt-get也写出来了。

安装:sudo apt-get install /update/remove 软件名


5、如何写shell脚本?尝试自己编写一个简单脚本。

仿照此:

#!/bin/bash

echo "Hello World !"

执行脚本命令:

chmod +x ./test.sh  #使脚本具有执行权限

./test.sh  #执行脚本

自己用到的例子,用来统计nginx的access.log中总访问量、各ip 访问次数统计 、响应时间超过某个值的ip条数 。

#!/bin/bash

log_path=/var/log/nginx/access.log

export.GB2312;

ip_pv=`awk '{ip[$1]++}END{for (k in ip){print ip[k],k}}' ${log_path} | sort -rn | head -20`

total_visit=`wc -l ${log_path} | awk '{print $1}'`

d=`awk -F- '$2>0.007' access.log | sort -n | uniq | wc -l`

echo -e "总访问量-${total_visit}\nip-${ip_pv}\时间超过0.007毫秒的有${d}条"


6、spring aop 应用场景?

spring ioc 用于解耦,spring aop用于提高代码复用性。

AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去。

适用于具有横切逻辑的应用,aop 将分散的代码通过横向切割方式(我用到的是xml文件中配置切点、切面等 )抽取到一个独立的模块(aop.Advice.class中 before after 方法里)

AOP适合性能监测,访问控制,事务管理、缓存、对象池管理以及日志记录,我使用的是用于日志分析吧 。


未解决的问题:

接口访问时长 :postman 可以看到 

db时间日志在服务器上的输出。


返回列表 返回列表
评论

    分享到