发表于: 2017-10-27 21:51:08

1 659


今天完成的事情:

1

总结任务三

任务三主要是学习如何对大码的运行情况做到了如指掌,包括查看日志,使用脚本统计性能,top命令查看WEB服务器的CPU等运行参数。了解并初步使用nginx等服务器进行反向代理。


nginx的conf配置:(/usr/local/nginx/conf/nginx.conf)


利用log_format打日志,任务需要统计响应时间:

整个流程是:[1用户请求][2建立 Nginx 连接][3发送响应][4接收响应][5关闭  Nginx 连接]

①request_time

官网描述:request processing time in seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client and the log write after the last bytes were sent to the client

包含1234

②upstream_response_time

官网描述:keeps times of responses obtained from upstream servers; times are kept in seconds with a milliseconds resolution. Several response times are separated by commas and colons like addresses in the $upstream_addr variable

包含2345

依据情况添加相关信息。


配置server:

listen 监听端口

sever_name shunly.com 需要在/etc/hosts 中配置 127.0.0.1 shunly.com

location 配置代理 proxy_pass http://127.0.0.1:8080 用户请求转到这个(tomcat)中。


location ~\.(html|js|css|png|gif)$ {

root  /home/tomcat8/webapps/ROOT;

}

这样配置就是把一些静态资源交给nginx缓存。


脚本编写

创建:vim xx.sh

权限:chmon +x ./xx.sh

运行:./xx.sh


开头#!/bin/bash

变量直接赋值:logPath=/usr/local/nginx/logs/access.log

使用时候${logPath}

tail -100 ${logPath}|awk 'BEGIN{sum=0}{if($14<0.001)sum++;}END{print sum}'

提取logPath指向的文件后100行,查找其中第14个域的值是否小于0.001,并统计个数。

awk的域是指由空格或tab分割的区域,域从1开始计数。


DB访问时间一般都在十左右毫秒,访问响应延时也是差不多时间。



2 深度思考

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

nginx服务器用来进行反向代理,负载均衡,用于处理高并发。


反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

反向代理和正向代理一样,都是代收发请求而和响应。反向代理的对象是服务端,与正向隐藏请求客户端相比,反向隐藏的是服务端。


使用反向代理保护身后的真实服务器,分发请求,提高效率。


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

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

SSH 主要由三部分组成:

传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。


一般用wget啊。

之后进行代码部署脚本,参考http://blog.csdn.net/kobejayandy/article/details/13291655时,使用了rz/sz命令。



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

脚本不要用脚写。


脚本编写

创建:vim xx.sh

权限:chmon +x ./xx.sh

运行:./xx.sh


脚本就是通过写入一堆命令,将流程自动化了。


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

参考http://www.jianshu.com/p/8465131bcabf


1. Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。-

2. Jboss作为Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。-

3. Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级Java Web领域备受喜爱,特别是在互联网Web服务领域,众多知名公司都采用其作为他们的Java Web应用服务器,譬如163、ku6等。-





3

明天计划的事情:

1任务四。



遇到的问题: 

解决tomcat启动后首次访问时间很长的问题

查看日志发现:

27-Oct-2017 11:04:26.488 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [105,874] milliseconds

最后花了这么久:

27-Oct-2017 11:04:32.510 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 114681 ms


经过搜索,找到解决方法 附上链接http://www.jb51.net/article/117086.htm

更改java.security文件中的 securerandom.source=file:/dev/./urandom

find / java.security


最后重启tomcat,再访问后

27-Oct-2017 11:13:15.434 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 8927 ms


涉及到lunix随机数生成。

Linux 中的随机数可以从两个特殊的文件中产生,一个是 /dev/urandom,另外一个是 /dev/random。他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特作为字节流返回。熵池就是当前系统的环境噪音,熵指的是一个系统的混乱程度,系统噪音可以通过很多参数来评估,如内存的使用,文件的使用量,不同类型的进程数量等等。如果当前环境噪音变化的不是很剧烈或者当前环境噪音很小,比如刚开机的时候,而当前需要大量的随机比特,这时产生的随机数的随机效果就不是很好了。

urandom比random的随机效果差,但是不会阻塞程序。random必须收集足够多的信息才能产生随机数,然后才返回之,这迫使JVM等待。所以会比较慢。


收获:


以上。对于项目部署等操作有了一定了解。


令外正则表达式的入门学习 http://www.jb51.net/tools/zhengze.html#mission

常用的元字符

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束


常用的限定符

代码/语法 说明

* 重复零次或更多次

+ 重复一次或更多次

? 重复零次或一次

{n} 重复n次

{n,} 重复n次或更多次

{n,m} 重复n到m次

| 分枝 ()分组


表3.常用的反义代码

代码/语法 说明

\W 匹配任意不是字母,数字,下划线,汉字的字符

\S 匹配任意不是空白符的字符

\D 匹配任意非数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除了x以外的任意字符

[^aeiou] 匹配除了aeiou这几个字母以外的任意字符



返回列表 返回列表
评论

    分享到