Nginx 的安装与启动
通过 Nginx 服务日志来查看请求头中的 User-Agent
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,使用 Nginx 企业有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx 的安装与启动
通常可以使用系统本身的安装工具(Centos 的 yum、Debian 系的 apt-get 以及 MacOS 的 brew)安装 Nginx,以 linux 系统为例,在终端中输入:
sudo apt-get install nginx 复制代码
接下来根据提示选择,即可完成 Nginx 的安装。
接着在终端通过命令:
sudo systemctl start nginx 复制代码
即可启动 Nginx 服务。
备注:由于各个系统差别以及版本差异,安装和启动命令略有差别,解决办法自行搜索
Nginx 的日志
Nginx 为用户提供了日志功能,其中记录了每次服务器被请求的状态和其他信息,包括 User-Agent。 Nginx 的默认日志存放路径为:
/var/log/nginx/ 复制代码
在终端通过命令
cd /var/log/nginx && ls 复制代码
可以进入到日志存放目录并列出目录下的文件,可以看到其中有两个主要的文件,为 access.log
和 error.log
它们分别记录着成功的请求信息和错误信息。我们通过 Nginx 的访问日志来查看每次请求的信息。
发起请求的几种办法
浏览器
Nginx 启动后,默认监听 80 端口,你只需要访问 IP 地址或者域名即可。假设 IP 地址为 127.0.0.1
,那么可以在浏览器输入:
http://127.0.0.1 复制代码
回车后,浏览器就会向服务器发起请求,和你平时上网是一样的。
Python 代码
这里我们利用 Requests 库来发起网络请求。在本地新建一个名为 gets.py
的文件,其中代码为:
import requests # 向目标发起请求,并打印返回的 http 状态码 resp = requests.get("http://127.0.0.1") print(resp.status_code) 复制代码
Postman
Postman是一款功能强大的网页调试与发送网页HTTP请求的工具(Postman下载地址),它可以模拟浏览器,访问指定的 Url 并输出返回内容
Curl
这是一个利用URL语法在命令行下工作的传输工具,它不仅支持 url 地址访问还支持文件上传和下载,所以可以称它为综合传输工具。他也可以模拟浏览器,访问指定的 Url
Nginx 日志记录结果
上面使用了 4 种方法来向服务器发起请求,那么我们看看 Nginx 的日志中,记录了什么样的信息。在终端通过命令:
sudo cat access.log 复制代码
来查看日志文件。可以看到这几次的请求记录:
# 请求记录 127.0.0.1 - - [04/Nov/2018:22:19:07 +0800] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" 127.0.0.1 - - [04/Nov/2018:22:19:07 +0800] "GET /favicon.ico HTTP/1.1" 404 200 "http://127.0.0.1/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" 127.0.0.1 - - [04/Nov/2018:22:20:36 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" 127.0.0.1 - - [04/Nov/2018:22:27:14 +0800] "GET /z_stat.php?id=1256772952&web_id=1256772952 HTTP/1.1" 404 144 "http://appstore.deepin.org/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) deepin-appstore/4.0.9 Safari/538.1" 127.0.0.1 - - [04/Nov/2018:22:42:10 +0800] "GET / HTTP/1.1" 200 396 "-" "PostmanRuntime/7.3.0" 127.0.0.1 - - [04/Nov/2018:22:42:51 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.60.0" 复制代码
无论是 Python 还是 Curl 或者浏览器以及 Postman 的请求,都被记录在日志文件中,说明 Nginx 可以识别发起请求的终端类型。
作者:云享专家韦世东
链接:https://juejin.im/post/5bdeb32d51882516fa635ace
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 点赞
- 收藏
- 关注作者
评论(0)