发表于: 2020-06-19 23:49:23

1 1998


今天完成的事情:完成Nginx代理静态资源,了解给阶段的响应和耗时
明天计划的事情:明天结束任务三。
遇到的问题:暂无
收获:

Nginx配置静态资源代理

因为任务要求图片存在本地,用nginx去访问,所以我在Windows下新建的静态资源目录为E:\java\static\images,里面存放图片

在Nginx的conf/nginx.conf中配置

  server {
      listen       8089;
      server_name  localhost;

location ~.*(css|js|images|html).+ {
   root E:/java/static;  //这儿就是存放静态文件的部分目录,后面文件的路径是在浏览器要输入的路径,如下
      expires 5m;//页面缓存5分钟
}


Nginx响应时间

  1. (1)request_time
  2. 指的就是从接受用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出响应数据时间。
  3. (2)upstream_response_time
  4. 是指从Nginx向后端建立连接开始到接受完数据然后关闭连接为止的时间。

从新温习了下老大讲的请求到响应的各个阶段的损耗。

一个网络请求的损耗分为三个部分,前端响应,网络延迟,服务器响应。

任何就是在前端会配一个Nginx,后端会配置Tomcat的web服务器,查看各个阶段可以查看Access.log里的记录。

服务器里细分Controller和service调用处理时间,Tomcat响应的时间可以分为: 1.Controller的处理时间 2.Service的调用时间 3.返回结果的处理时间。

controller本身的处理事情,一般都会是在开始和结束各打一条毫秒数这是所有的业务逻辑处理的总时间。调用各Service的时间包含网络传输和Service的响应时间。返回结果的时间一般都是解析成Json的时间。

明天用代码实现。

https://www.zhihu.com/question/58481553老大知乎文章链接。

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 通用日志格式下的本地时间。

我改了数据库,由远程改成本地后,时间直接缩短了10倍到100倍之间。响应时间也是一直低于200ms。


返回列表 返回列表
评论

    分享到