尝试使用Apache记录访问日志

※macOS

Apache是什么?

能够提供HTML、图像、视频等静态内容的Web服务器软件

这次要使用的文件。

Apache_Test
  ├── app.js
  ├── node_modules
  │   └── たくさんあるから書かない 
  ├── package.json
  └── httpd.conf 

安装

$ npm init -y
$ npm i express fs morgan

实际亲自去尝试一下

处理内容

const app = require('express')()
const morgan = require('morgan')
const fs = require('fs')
const port = process.env.PORT || 8080

let accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'})
app.use(morgan('combined', {stream: accessLogStream}))
app.get('/', function (req, res) {
  res.send("Hello Node.js!")
})
app.listen(port, ()=> console.log("Port number is "+ port))

带领去

$ node app.js
Port number is 8080.

访问本地服务器

スクリーンショット 2020-01-03 2.39.36.png

只要在app.js中指定的短句显示出来,访问就算是成功的。

获取访问日志

测量对此次设置的端口号的访问情况。

httpd.conf的配置

NameVirtualHost *:8080
Listen 8080
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"

在此配置文件中,可以指定日志的输出格式。

这次是 %h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”。

%h   リモートホスト名
%l   クライアントの識別子
%u   認証ユーザー名
%t   リクエストを受信した時刻
%r   リクエストの最初の行
%>s  最後のレスポンスのステータス
%b   HTTPヘッダを除くレスポンスのバイト数
%{Referer}i     サーバが受信したリクエストヘッダのReferer
%{User-Agent}i  サーバが受信したリクエストヘッダのUser-Agent

假设。

让它再跑一次

$ node app.js
Port number is 8080.

再次访问本地服务器。

确认一下文件结构,应该会有一个名为 access.log 的文件被生成!

查看access.log

按照 httpd.conf 文件中指定的方式生成了访问日志。

结束

这次使用的代码在这里。

广告
将在 10 秒后关闭
bannerAds