更改 nginx 默认日志格式有时不起作用

更改 nginx 默认日志格式有时不起作用

我最近设置了 fail2ban 以使用我的自定义 nginx 日志记录格式(称为“main”),我将所有站点的日志记录到不同的 *.access.log 文件中。我仍然必须更改 ^access.log 中的默认格式,因此我在 nginx 配置中添加了另一个 server{} 块,如下所示:

server {
    listen 80 default_server;

    ...

    access_log logs/access.log main;
    error_log logs/error.log;
}

一切似乎都按预期运行,但有时我仍然可以在 ^access.log 文件中看到默认日志格式。我使用 grep 过滤了所有这些文件,似乎它们都获得了 301 状态代码,我在所有网站上都有一个自定义脚本,即:

# check if connecting to http
if ($scheme = "http") {
    # if yes, set $temp_cache to 1, if no stays at undefined
    set $temp_cache 1;
}
# check if address is website.com/.well-known/acme-challenge/*
if ($request_uri ~ ^/.well-known/acme-challenge/(.+)$) {
    # if yes, set $temp_cache to 11, if no stays at 1
    set $temp_cache 2$temp_cache;
}
# check if $temp_cache is 1
if ($temp_cache = 1) {
    # if yes, change http to https
    return 301 https://$host$request_uri;
}

我认为这可能是原因,因为没有其他配置行可以使用 301 重定向用户。
任何帮助都值得感激!

相关内容