发表于: 2017-10-25 23:33:05
1 730
今天完成的事情:
1 脚本
#!/bin/sh 告诉系统#!之后的是解释器路径
time_xx=1
echo "xxxx ${time_xx}" ${}用来明确变量边界
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
编写打开tomcat的start.sh
关闭tomcat stop.sh
2 lunix安装nginx:
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
编译 ./configure
提示:the HTTP rewrite module requires the PCRE library.
the HTTP gzip module requires the zlib library.
安装相应模块:
yum install pcre pcre-devel
yum install zlib gzip zlib-devel
安装:
./configure && make && make install
查询nginx主进程号
ps -ef | grep nginx
3 nginx日志配置:
$remote_addr, $http_x_forwarded_for(反向) 记录客户端IP地址
$remote_user 记录客户端用户名称
$request 记录请求的URL和HTTP协议
$status 记录请求状态
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
$bytes_sent 发送给客户端的总字节数。
$connection 连接的序列号。
$connection_requests 当前通过一个连接获得的请求数量。
$msec 日志写入时间。单位为秒,精度是毫秒。
$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
$http_referer 记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
$request_length 请求的长度(包括请求行,请求头和请求正文)。
$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
$time_iso8601 ISO8601标准格式下的本地时间。
$time_local 通用日志格式下的本地时间。
4编写脚本统计响应:
awk:把文件通过空格或者TAB分割成各个域
$0表示全部, ${num} 表示第几个域
tail -n 查看文件后n行
明天计划的事情:
完成任务三
遇到的问题:
1 /usr/local/nginx/sbin/nginx -s reload
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
解决方法:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
2 之前nginx和tomcat都开着时候,访问成功(curl localhost:8080/application/application/list)但是nginx的log没有输出
原因在于做之前没有很好理解正向代理和反向代理,以及nginx.conf配置的 server_name (配置基于名称的虚拟主机)和 proxy_pass(代理地址)。
正向代理:用户可以通过代理服务器访问到原来访问不到的网站。用于防火墙内用户访问外部网站。
反向代理:用于防火墙外部用户浏览防火墙内部资源。负载均衡?
最后改用curl localhost/application/application/list 访问就成功了。
收获:
学习了脚本的编写、nginx的安装、配置和查看日志。
评论