API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) · 课时

Nginx 日志记录与指标

配置 Nginx 访问日志和错误日志,并探索提取指标以进行监控和分析的方法。

第 1 / 4 课11 个步骤

Nginx 日志记录与指标 是 CoddyKit 上的免费 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Why Nginx Logs Matter

Nginx logs are vital for understanding your server's activity and health. They record every request and any issues that occur.

Think of them as your server's diary. By reviewing these logs, you can monitor performance, troubleshoot errors, identify security threats, and gather valuable usage metrics.

Understanding Access Logs

Access logs record every request Nginx processes. Each line details a single client request, providing insights into who accessed what, and when.

  • Client IP: Who made the request.
  • Request method & URL: What was requested.
  • Status code: Was it successful (200), an error (404, 500), etc.?
  • Response size: How much data was sent back.
  • User-Agent: The client's browser/device.

Default Access Log Format

By default, Nginx uses the 'combined' log format, which includes standard information. You'll typically find your access logs in /var/log/nginx/access.log.

Here's what a common entry looks like:

192.168.1.1 - - [10/Oct/2023:14:30:00 +0000] "GET /index.html HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (...)"

Customizing Access Log Formats

Nginx allows you to define custom log formats using the log_format directive. This is powerful for tailoring logs to your specific monitoring or analysis needs.

You can include variables like $remote_addr (client IP), $request (full request line), $status (response status code), $body_bytes_sent, and many more.

Defining a Custom Log Format

Let's create a custom log format named 'my_json_format' that outputs logs in JSON. This is great for automated parsing!

Place this inside your http block in nginx.conf:

http {
    log_format my_json_format escape=json
      '{ "time_local":"$time_local",'
      '  "remote_addr":"$remote_addr",'
      '  "request":"$request",'
      '  "status":$status,'
      '  "bytes_sent":$body_bytes_sent,'
      '  "request_time":$request_time,'
      '  "http_referrer":"$http_referer",'
      '  "http_user_agent":"$http_user_agent" }';

    server {
        listen 80;
        server_name example.com;
        access_log /var/log/nginx/json_access.log my_json_format;
        # ... other server config ...
    }
}

Understanding Error Logs

Error logs record diagnostic information about issues Nginx encounters, from configuration problems to backend connection failures.

They are crucial for debugging and maintaining server stability. You'll typically find them at /var/log/nginx/error.log.

Configuring Error Log Levels

The error_log directive allows you to specify the log file and the severity level. Nginx logs messages at or above the specified level.

  • debug: Most verbose, for deep debugging.
  • info: Informational messages.
  • notice: Normal but significant conditions.
  • warn: Potentially problematic situations.
  • error: An error occurred.
  • crit: Critical conditions.
  • alert: Action must be taken immediately.
  • emerg: System is unusable.

Setting Error Log Levels

You can configure the error log level globally in the main or http block, or specifically within a server or location block.

For production, warn or error is common to keep logs manageable. For debugging, you might temporarily set it to info or debug.

http {
    error_log /var/log/nginx/error.log warn;

    server {
        listen 80;
        server_name example.com;
        # This server's errors will also be logged at 'warn' level
        # You could override it here: error_log /path/to/server_error.log info;
    }
}

Log Rotation for Production

In production, logs can grow very large, very quickly. Log rotation is the process of archiving, compressing, and deleting old log files to prevent them from filling up your disk space.

While Nginx doesn't handle rotation itself, tools like logrotate (common on Linux) are used to manage this. You configure logrotate to periodically rotate Nginx's log files.

Nginx Log Metrics

Which of the following Nginx log variables would be most useful for calculating the average response time of your web application?

Recap: Logs for Insights

You've learned that Nginx access logs track client requests, while error logs report server issues. Customizing log formats with log_format allows you to tailor output for specific metrics or tools.

Understanding log levels (e.g., warn, error) helps control verbosity, and knowing about log rotation ensures disk space management.

These logging fundamentals are essential for effective monitoring and troubleshooting of your Nginx server.

免费开始

用 AI 导师学习 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
12
课程
48

常见问题解答

「Nginx 日志记录与指标」课时是免费的吗?

是的 — 「Nginx 日志记录与指标」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课程的其余内容,请升级到 CoddyKit PRO。 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课程共包含 4 节课。

「Nginx 日志记录与指标」这节课中我会学到什么?

配置 Nginx 访问日志和错误日志,并探索提取指标以进行监控和分析的方法。 你通过在浏览器中直接运行的动手代码来练习 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway),全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 需要有经验吗?

无需任何先前经验。CoddyKit 上的 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Nginx 日志记录与指标」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课中编写并运行代码吗?

能。每节 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway) 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Nginx 日志记录与指标
  2. Nginx 性能调优
  3. 容器化环境中的 Nginx
  4. 零停机重新加载与配置测试
← 返回 API Gateway & Reverse Proxy (Nginx + Spring Cloud Gateway)