发表于: 2018-02-07 23:39:15
1 587
今日完成:
1. Nginx配置文件结构
配置文件主要由四部分组成:
从主要配置入手
main(全区设置):
当前运行用户如果遇到权限不够可以修改为root;
启动进程数,通常=cup数
全局日志
指令 + 路径/文件名 + 最低级别
指令: error_log (错误日志);
文件: logs/error.log 默认
stderr 向nginx进程的标准错误输出流输出日志。
syslog 向syslog输出日志。例:error_log syslog:server=192.168.1.1 debug;
memory 向环形内存缓冲区写出日志,一般情况下仅在调试时才会用到。例:
error_log memory:32m debug;
级别:[debug|info|notice|warn|crit]
默认的错误日志(error_log logs/error.log)是全局的,可以在main中自定义来进行覆盖
main环境中的日志会被继承,也可以被覆盖
日志会被记录在发生最近的一层日志中
同一层可以error_log多个日志
worker_rlimit_nofile 65535; 一个nginx进程打开的最多文件描述符数目
PID记录当前master process的pid号
events(事件配置):
use epoll 设置用于复用客户端线程的轮询方法: [ kqueue | rtsig | epoll | /dev/poll | select | poll ]
每个进程可以处理的最大连接数
http参数: 控制着nginx http处理的所有核心特性
文件扩展名与文件类型映射表
默认文件类型
访问日志
log_format可以在配置文件中定义多个输出格式
access_log指令来实现访问日志的输出文件和级别
访问日志把每个用户访问网站的日志信息记录到指定的日志文件里面,供网站提供这分析用户浏览行为等
sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件
连接超时时间
server(主机配置)(在http参数中):
侦听80端口
设定客户端访问地址
定义服务器默认网站根目录位置
Ps:也就是说nginx监听来自客户端对localhost:80的访问
location(匹配路径,在server中):
对以“mp3或exe”结尾的地址进行负载均衡
设置被代理服务器的端口或套接字,以及URL
定义错误提示页面
定义静态文件处理
2. 修改nginx.conf配置文件,通过访问服务器ip+80端口跳转到修真院主页
3. 修改nginx.conf侦听80端口访问上传的war包地址
可以成功跳转,但是子页面无法进入,报404
原因在于在tomcat中每个路径都加上了项目名,但是在nginx里多配置了/student/,导致地址错误
解决方法修改tomcat的server.xml文件
取消到appBase值,添加两个Context跳转目录,缺点是每次tomcat都得加载两次判断两次
因此最好是在war包中不直接使用url间的跳转,而是统一使用Controler进行重定向
4. 查看nginx的error_log默认日志
5. 查看nginx访问日志
并且测试打开网页,日志便跟新一条记录
6. 访问日志
1)log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)
log_format格式变量:
$remote_addr #记录访问网站的客户端地址
$remote_user #远程客户端用户名
$time_local #记录访问时间与时区
$request #用户的http请求起始行信息
$status #http状态码,记录请求返回的状态码,例如:200、301、404等
$body_bytes_sent #服务器发送给客户端的响应body字节数
$http_referer #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。
$http_user_agent #记录客户端访问信息,例如:浏览器、手机客户端等
$http_x_forwarded_for #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
2)access_log #用来指定日至文件的路径及使用的何种日志格式记录日志
access_log off; #关闭access_log,即不记录访问日志
access_log path [format [buffer=size [flush=time]] [if=condition]];
access_log path format gzip[=level] [buffer=size] [flush=time] [if=condition];
access_log syslog:server=address[,parameter=value] [format [if=condition]];
说明:
buffer=size #为存放访问日志的缓冲区大小
flush=time #为缓冲区的日志刷到磁盘的时间
gzip[=level] #表示压缩级别
[if = condition] #表示其他条件
7. 在网上复制了一个统计pv的shell脚本,但是没跑通,明天继续
明日计划:
1. 完成任务三剩于任务
遇到的问题:
1. Idea打包war包的任务名与地址路径的关系,在tomcat路径部署
2. Shell脚本的语法问题,明天继续查文档
收获:
1. Nginx的配置文件学习,通过子域名访问tomcat里的项目
2. 配置nginx里的日志,分为错误日志和访问日志
3. 初步学习shell脚本
评论