nginx代理路径返回原点URL -- nginx 领域 和 proxy 领域 服务器管理 相关 的问题

Nginx proxy path return origin url


0
vote

问题

中文

nginx作为几个网站的代理。在其中一个站点上,重定向到SSO登录和返回URL显示的原点域,而不是代理。

conf:

  location /demo/web1 { proxy_pass https://website1.net/web1/index.html; proxy_redirect default; proxy_redirect https://website1.net/web1/index.html https://proxywebsites.com/demo/web1; }  location /demo/monitor { proxy_pass https://monitorwebsite.net/monitor; proxy_redirect default; proxy_redirect https://monitorwebsite.net/monitor https://proxywebsites.com/demo/monitor; }  location /Home/SignIn { proxy_pass https://thirdWebsite.net/Home/SignIn; proxy_redirect default; proxy_redirect https://thirdWebsite.net/Home/SignIn https://proxywebsites.com/Home/SignIn; }   

它是如何工作的?加载/演示/监视器时,您将从中重定向到/ home / signin,从那里开始,您将被重定向到SSO网站,例如 http://soSo.com?id=blalba 。问题是它与"returnull" 参数重定向,并且在该参数返回URL中不是代理,而是orign。例如: http://soSo.com?Id=blalba&λ; returnurl= monitorwebsite.net/监视,应该 http://soSo.com? id = blalba& returnull = proxywebsites.com / demo / monitor

英文原文

Nginx works as a proxy for a couple of websites. On one of the sites there is redirect to SSO login and in return URL displayed origin domain and not the proxy one.

The conf:

location /demo/web1 { proxy_pass https://website1.net/web1/index.html; proxy_redirect default; proxy_redirect https://website1.net/web1/index.html https://proxywebsites.com/demo/web1; }  location /demo/monitor { proxy_pass https://monitorwebsite.net/monitor; proxy_redirect default; proxy_redirect https://monitorwebsite.net/monitor https://proxywebsites.com/demo/monitor; }  location /Home/SignIn { proxy_pass https://thirdWebsite.net/Home/SignIn; proxy_redirect default; proxy_redirect https://thirdWebsite.net/Home/SignIn https://proxywebsites.com/Home/SignIn; } 

How it works? When you load the /demo/monitor, you will be redirected to /Home/SignIn, from there you will be redirected to SSO website, for example http://sso.com?id=blalba. The problem is that it redirects with "returnUrl" parameter and in that parameter return url is not the proxy on, but origin. For example: http://sso.com?id=blalba&ReturnUrl=monitorwebsite.net/monitor and should be http://sso.com?id=blalba&ReturnUrl=proxywebsites.com/demo/monitor

     

回答列表

0
 
vote

似乎只支持使用 proxy_redirect 指令来重写标准化URI。因此,一个人无法在应用程序返回的 abcdefghijklmnLocation: 标题中更改任何查询参数。

所以,唯一的解决方案是更改应用程序。

 

It seems that nginx only supports rewriting normalized URIs with proxy_redirect directive. Therefore one cannot alter any query arguments in the Location: header returned by the application.

So, the only solution would be to change your application.

 
 

相关问题

0  (服务php)apache2会在每个连接上创建新线程吗?  ( Serving php does apache2 will create new thread on every connection ) 
基于许多在线源,在服务静态文件中,Apache2将在每个不同的连接上创建新线程......导致资源饥饿 但是如何通过apache2服务php(mod_php,mpm worker等)? Apache还将打开像服务静态文件一样的新线程吗? (afaik,在nginx php-fpm中,我们可以设置最大线程,但我不知道每...

0  鼠尾草 - 签名不匹配错误和nginx 504错误  ( Gunicorn signature mismatch error and nginx 504 error ) 
我正在使用烧瓶和麦克松在Debian 10和Nginx HTTP服务器上运行应用程序。 网站运行良好,但有时它会非常缓慢地加载nginx 504错误,如果我打开错误日志,我会发现一堆错误,在哪里: gunicorn[16962]: Signature mismatch: url's None != expecte...

5  nginx反向代理:未设置过期标头  ( Nginx reverse proxy not setting expires header ) 
我的静态资产配置为 location @upstream { proxy_pass http://localhost:82; proxy_set_header Host $host; proxy_set_header X-Real-IP $r...

0  nginx拆分在多个文件中  ( Nginx split config in multiple files ) 
我还在学习nginx,我遇到了一个问题。 所以之前开始我的项目我正在拆分配置文件的问题。 因此,该想法是拥有一个"主要" 文件,其中服务器配置,示例: server { server_name demo.server.com; include my/custom/location/*.nginx...

4  nginx / php-fpm =空白页面  ( Nginx php fpm blank pages ) 
亲爱的serverfault社区, 我在两天前设法将我的网站陷入全功能状态..在3小时前今天,我重新启动了我的Linux盒子,并找到了我的网站不再工作。我不知道为什么这会是和坦率地坦率地说,我只是不要觉得我现在处于一个水平来解决它 - 我可以用你的帮助来真正做:) 基本上,我的nginx php文件都呈现为空白或说...

0  使用php_error.log在我的nginx服务器上使用php_error.log  ( What is using php error log in var log on my nginx server ) 
在/ var /日志中我的nginx服务器有php5-fpm.log和php_error.log php_error.log有各种各样的通知,使其大小增长到数百MB的大小。我试图找到哪个php.ini管理这个文件,但没有运气。 php --ini 给出: Configuration File (php....

2  nginx反向代理到LAMP服务器:无法登录PHPMYADMIN  ( Nginx reverse proxy to lamp server cant login to phpmyadmin ) 
我很新的是apache,甚至更新到反向代理,但我最终用nginx(作为反转代理)和apache安装一个服务器,以管理具有不同技术的网站。 PHP网站(下面的PHP_SITE)由Apache处理,Ruby在Rails网站上由Nginx处理。稍后应添加更多网站。一切都在工作正常,除了phpmyadmin。 我的问题:我可...

0  在Ubuntu Server上启用端口 - nginx反向代理  ( Enable ports on ubuntu server nginx reverse proxy ) 
我的私人IP是例如175.34.55.2 ubuntu@ip-175-34-55-2:~$ sudo nmap -sT -p- 175.34.55.2 Not shown: 65531 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp ...

1  电子邮件处理与收件箱.py和nginx  ( Email handling with inbox py and nginx ) 
我有一个运行在枪手和nginx后面的烧瓶web应用程序。 nginx代理ivrhub.org的任何流量到正确的烧瓶应用程序。 我非常喜欢使用 inbox.py 来处理一些传入的电子邮件。在我的服务器上运行Inbox.py示例,然后向Hello@ivrhub.org发送电子邮件至hello@ivrhub.org不起作...

4  发布请求时405(不允许)  ( 405 not allowed on post request ) 
在Winginx发生问题之前的一切工作。当我用jQuery向数据发送数据时,我得到405(不允许)错误。效果完全好。 当我从/ formcheck请求数据(这是forcmcheck.php并且自己的正常工作)我收到此错误。除了重写引擎的几行之外,我在nginx日志中没有改变任何东西。 您可以查看日志: 127...

0  nginx + php5-fpm + cifs share + cakephp超时  ( Nginx php5 fpm cifs share cakephp timeout ) 
我最近将我的cakephp 3开发环境移动到网络共享。 所涉及的服务器只有nginx webroot的路径更改( root /var/www/webroot ,到 root /mnt/dev/webroot )。 我正在通过 /etc/fstab 安装CIFS共享,如下所示: //nfs/WebDev /mnt/...

0  编写nginx服务器块以捕获通配符n级子域?  ( Writing an nginx server block to capture wildcard n level subdomains ) 
我正在运行nginx代理服务器,以使用OpenResty / Lua和Letsencrypt自动生成SSL证书,在多租户SaaS平台中。我有许多需要证书的域,而且无法白发性审商它们,因此我的证书服务器接受指向它的所有请求。 我开始看到很多符合域结构的大量无效域请求: www.randomsubdomain.any...

0  如何使挖掘荣誉TTLS /使用本地操作系统缓存?  ( How to make dig honour ttls use the local os cache ) 
当我运行 dig example.com 响应回到 SERVER: 192.168.0.1 ,即使在后续运行。这意味着dig始终正在进行网络调用来解析DNS记录。 i(相反,不知情)假设我的操作系统将根据其TTL缓存DNS记录,并且该挖掘将使用该缓存。 dig否则默认忽略ttl /不使用缓存?如果是,我如何让挖掘...

1  nginx不会将外部请求传递给localhost  ( Nginx doesnt pass outer request to localhost ) 
jetty服务器在localhost上运行:8080和在通过curl(Putty)提出请求时成功响应: curl -H "Content-Type: application/json" -X POST -d '{"message":"Hi"}' http://localhost:8080 我有以下 ngi...

0  阻止所有与fail2ban的恶意nginx连接  ( Blocking all malicious nginx connections with fail2ban ) 
最近,我的服务器攻击有很大的增加,让我切换到更具侵略性的Fail2ban阻止策略。 为了减少传入连接的数量,我还重新配置了nginx(用于清楚的恶意请求): keepalive_requests 0; keepalive_timeout 0; return 444; (...) error_page 400...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.