nginx使用了 5000 端口,这个自身A230 的 5000端口 与前面 A252 的 80 对应上了。
里面还有一个 location v2对应的 proxy_pass http://A.15:9002 代理设置,也就是说下一步指向 A.15
root@A230:~# cat registry_china_prod/nginx.conf
worker_processes auto;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 900;
gzip on;
upstream registry {
server 127.0.0.1:6000;
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $request_time $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"$upstream_addr" "$upstream_status" "$upstream_response_time" "$request_time"';
access_log /var/log/nginx/access.log main;
server {
listen 5000;
server_name xyz;
chunked_transfer_encoding on;
client_max_body_size 0;
client_body_timeout 9000;
client_header_timeout 9000;
location ~ /v2/(.*)/(.*)/tags/list {
rewrite /v2/(.*)/(.*)/tags/list /wrapper/$1/$2/tags/list break;
proxy_pass http://A15:9002;
}
location ~ /v2/ {
proxy_pass http://registry;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 9000;
proxy_connect_timeout 9000;
proxy_send_timeout 9000;
send_timeout 9000;
}
location ^~ /v1/ {
proxy_pass http://registry;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 9000;
proxy_connect_timeout 9000;
proxy_send_timeout 9000;
send_timeout 9000;
}
location /ping {
add_header Content-Type "text/plain;charset=utf-8";
return 200 "OK";
}
location / {
rewrite ^/(.*) https://xyz/$1 permanent;
}
}
}
2.2.4. lb部分
前面找到的A15 是某云的 lb, 它 9002 端口后面是 2 台机器 的 6000 端口 A.97 和 A.165
诡异的事情,某云界面提示 “由于全部节点健康检查失败,*已停止服务。。“
看着是健康检查失效,一度怀疑是这里,和 同事H 看上下游服务器日志看了很久,没找到异常日志。
这些服务跑了好几年了,最近一次容器重启还是15个月前,配置肯定没问题的,陷在这里很久,
某云工程师后来回复 健康检查失败这个是 某服务未配置造成的,需要改系统参数,暂时搁置,这是后话。
接着从头看配置文件,找到nginx 配置有 graylog 的日志部分,请教了同事F 如何查看,F发现 graylog 有组件挂了一阵,启动临时文件被锁定,F顺手修复了。
接着查看 graylog ,边做测试,没有 504 日志,说明这个504不是我们沿途服务器打出来的。
F开始使用 神器 tcpdump 抓包,果然有发现,504是某云 cdn这边给出的。
![]()