大家好!我们有一个基于 nginx 的代理,其配置如下:
server {
server_name proxy;
listen 80;
underscores_in_headers on;
access_log /var/log/nginx/access.log bodylog;
location / {
proxy_pass http://X.X.X.X:Y;
}
}
后端是一个具有第一个登录页面访问权限的应用程序,之后进行搜索。因此问题是:当我们将代理调整为后端的 IP 地址时(proxy_passhttp://XXXX:Y)我们发现登录开始页后浏览器中的所有请求都会经过 nginx 代理服务器,我们可以将它们记录到 access.log 中。
但如果我们想在这里使用https://address.com对于同样的应用程序
location / {
proxy_pass https://address.com;
resolver 127.0.0.11;
}
我们发现只有登录页面的第一次加载会通过 nginx 代理,但那里的所有其他操作(登录本身、登录后搜索等)都会直接在域上进行https://address.com(不通过代理服务器),因此无法记录在 nginx-proxy access.log 文件中,但我们需要这个!有没有办法像使用 proxy_pass 到 IP 那样改变这种行为?
附加信息:应用程序部署在 kube 集群中,因此当我尝试通过 IP 请求访问它时,会转到 kube-service 以获取具有 LB 类型的应用程序,然后转到应用程序。当我尝试通过 https 请求访问 DNS 名称时,会转到集群中的 nginx-ingress-controller,然后转到 kube-service 以获取应用程序,然后转到应用程序