linux – Nginx反向代理重定向

我使用Nginx作为反向代理,当我登录我的Web界面时,我被重定向到代理的URL.我想避免它,并始终将“server_name”保留为URL.可能吗?

这是我的/etc/Nginx/conf.d/my_app.conf:

server { 
    listen 443 ssl; 
    server_name my-app.net; 
    ssl_certificate /etc/pki/tls/certs/my-app.cer; 
    ssl_certificate_key /etc/pki/tls/private/my-app.key; 
    ssl_protocols TLSv1.1 TLSv1.2; 
    access_log /var/log/Nginx/my-app.access.log main; 

    location / { 
        proxy_pass http://ip_of_the_app:7180/; 
        proxy_redirect off; 
    } 
} 

我在http://my-app.net上连接,输入登录信息,然后在同一个登录页面重定向到http:// ip_of_the_app:7180,我必须再次登录.可以避免双重登录吗?

解决方法:

不要将proxy_redirect设置为off,这不是你认为它正在做的事情. proxy_redirect执行类似于URL重写的操作,例如:

location /sales/ { 
    proxy_pass http://ip_of_the_app:7180/; 
    proxy_redirect http://ip_of_the_app:7180/ http://$host/sales/; 
}

这允许您在其他地方托管/ sales / path.但即便如此,proxy_redirect的认参数也是免费的.认设置是将位置重定向到proxy_pass中存在的任何内容(当您根本没有设置proxy_redirect时使用认参数,或使用proxy_redirect认值;).

您不需要设置proxy_redirect.

你缺少的是需要发送到应用程序的标题.其中最重要的是主持人.这将根据需要执行代理,并在浏览器中保留正确的URL.

location / { 
    proxy_pass http://ip_of_the_app:7180/; 
    proxy_set_header HOST $host;
}

请注意,http:// ip_of_the_app:7180 /上的应用程序现在将收到带有Host:my-app.net标头的请求.

您还应该考虑使用更多标题

proxy_set_header Referer $http_referer;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;

这将允许在http:// ip_of_the_app:7180 /中更好地记录应用程序. X-Forwarded-用于提供实际客户端的IP(与Nginxs IP相反)和X-Forwarded-Proto,以检查客户端是通过HTTP还是HTTPS连接到Nginx.

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...