1、access.log什么时候打印?
经过测试,观察到access.log是在后端返回响应结果之后才打印的,不过也很好理解,nginx要等后端返回才知道是否处理成功。
2、nginx什么时候出现upstream timed out?
nginx超时时间<接口响应时间,就会出现upstream timed out.
3、nginx什么时候出现no live upstreams?
测试过程日下
后端接口:
java
@RestController
public class BasicController {
private static final Logger logger = LoggerFactory.getLogger(BasicController.class);
@GetMapping("/xxx/test")
public String hello() throws InterruptedException {
logger.info("xxxtest");
Thread.sleep(50000);
return "success";
}
}
开启了两个端口8080和8081,启动项目
nginx配置如下:
bash
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/json;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
# 指定前端项目所在的位置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
# 设置超时时间
proxy_read_timeout 20s;
proxy_connect_timeout 20s;
proxy_send_timeout 20s;
proxy_next_upstream error timeout;
# 其他代理设置(可选)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://backend;
}
}
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
}
日志如下:
access.log
127.0.0.1 - - [07/Jun/2025:22:53:32 +0800] "GET /xxx/test HTTP/1.1" 502 497 "-" "PostmanRuntime/7.44.0"
127.0.0.1 - - [07/Jun/2025:22:53:50 +0800] "GET /xxx/test HTTP/1.1" 504 497 "-" "PostmanRuntime/7.44.0"
error.log
2025/06/07 22:53:30 [error] 44212#13196: *25 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /xxx/test HTTP/1.1", upstream: "http://127.0.0.1:8081/xxx/test", host: "localhost"
2025/06/07 22:53:32 [error] 44212#13196: *27 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /xxx/test HTTP/1.1", upstream: "http://127.0.0.1:8080/xxx/test", host: "localhost"
2025/06/07 22:53:32 [error] 44212#13196: *27 no live upstreams while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /xxx/test HTTP/1.1", upstream: "http://backend/xxx/test", host: "localhost"
2025/06/07 22:53:50 [error] 44212#13196: *25 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /xxx/test HTTP/1.1", upstream: "http://127.0.0.1:8080/xxx/test", host: "localhost"