日安!我们有一个基于nginx的代理和next配置:
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_pass http://X.X.X.X:Y)时,当我们在浏览器中登录开始页面时,所有的请求都会通过nginx代理服务器登录,然后我们可以将它们登录到access.log。
但是,如果我们想在这里使用https://address.com来处理相同的应用程序
location / {
proxy_pass https://address.com;
resolver 127.0.0.11;
}我们得到的只有第一次加载登录页面通过nginx代理,但所有其他动作(登录本身,搜索它,等等)右转到域https://address.com (不是通过代理服务器),所以不能登录到nginx-代理access.log文件,但我们需要这个!是否存在像proxy_pass一样将此行为更改为IP的行为?
附加信息:部署在kube集群中的应用程序,所以当我试图到达IP请求时,请转到拥有LB类型的应用程序的kube服务,然后转到app。当我尝试用https请求到达DNS名称时,转到集群中的nginx-ingress控制器,然后转到app的kube-service,然后转到app。
发布于 2022-01-16 18:14:20
我看到您正在使用端口80 (即http ),并使用proxy_pass https://address.com;即端口443。
升级到https也许会有帮助吗?举个例子:
server {
# SSL configuration
#begin of SSL
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl on;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
#end of SSL如果代理服务器有多个网络接口,有时可能需要选择特定的源IP地址来连接到代理服务器或上游。如果NGINX后面的代理服务器被配置为接受来自特定IP网络或IP地址范围的连接,这可能会很有用。尝试指定必要的网络接口的proxy_bind指令和IP地址:
location / {
proxy_pass https://address.com;
proxy_bind 127.0.0.11;
}https://stackoverflow.com/questions/70721669
复制相似问题