在/etc/nginx/sites-available/默认代理:
server {
listen xxx.xx.xxx.xxx:80 default_server;
proxy_read_timeout 200s;
access_log /var/log/nginx/default-access.log;
error_log /var/log/nginx/default-error.log;
include static.conf;
location / {
root /var/www/web/sites;
try_files /$host/ @default_host;
proxy_pass http://127.0.0.1:80;
proxy_redirect http://127.0.0.1:80/ /;
}
location @default_host {
proxy_pass http://127.0.0.2:80;
proxy_redirect http://127.0.0.2:80/ /;
}
location @mass_hosting {
root /var/www/web/sites;
try_files /$host/ @default_host;
proxy_pass http://127.0.0.1:80;
proxy_redirect http://127.0.0.1:80/ /;
}
}
server {
listen xxx.xx.xxx.xxx:443 ssl;
server_name domain.ru;
proxy_read_timeout 200s;
access_log /var/log/nginx/default-access.log;
error_log /var/log/nginx/default-error.log;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /var/www/web/ssl/domain.ru.crt;
ssl_certificate_key /var/www/web/ssl/domain.ru.key;
location / {
root /var/www/web/sites;
try_files /$host/ @default_host;
proxy_pass https://127.0.0.1:443;
proxy_redirect https://127.0.0.1:443/ /;
}
location @default_host {
proxy_pass http://127.0.0.2:443;
proxy_redirect http://127.0.0.2:443/ /;
}
location @mass_hosting {
root /var/www/web/sites;
try_files /$host/ @default_host;
proxy_pass http://127.0.0.1:443;
proxy_redirect http://127.0.0.1:443/ /;
}
}
在 access-default.log 文件中,条目正常,但 default-error.log 文件为空。为什么? ps 检查问题是否已修复的最简单方法是什么? 调用 404 错误并再次检查日志?
答案1
- 确保检查你的 access.log 中是否存在这些缺失的 404(这可能是由于 error_page 或 try_files 指令造成的)
- 确保“log_not_found”未设置为“off”[1]
- 确保您使用的上游没有返回指示 404 的响应,同时返回 200 状态代码(这将在访问日志中记录为 200)
[1]https://nginx.org/en/docs/http/ngx_http_core_module.html#log_not_found