gpt4 book ai didi

http - 重写重定向以包括用于访问服务的端口

转载 作者:可可西里 更新时间:2023-11-01 15:23:58 26 4
gpt4 key购买 nike

我有这样的设置:

enter image description here

使用我的 Vagrant 开发环境的用户访问 localhost:8080在他们的主机上,转发到 Vagrant 到运行在 localhost:80 的 NGINX客人身上。一些请求被转发到我在 localhost:8080 运行的应用程序服务器中在 guest 上,有些是 NGINX 提供的静态文件。

当我访问我的网站时发生了一件奇怪的事情。我有一个成功重定向的登录页面,URL 是从 http://localhost:8080/login 重写的至 http://localhost:80/login .

这是我为网站配置的 NGINX:

upstream appserver {
server 127.0.0.1:8080;
}

upstream production {
server www.mysite.com:443;
}

server {
listen 80 default_server;
server_name _;

client_max_body_size 20M;

access_log /var/log/nginx/project.access.log;
error_log /var/log/nginx/project.error.log;

index /index;

location ~ ^(/js/testpage.js) {
alias /vagrant/artifacts/www/js/testpage.js;
}

location ~ ^(/test/js/app.js) {
alias /vagrant/test/js/app.js;
}

location ~ /test/js/app_router.js {
alias /vagrant/test/js/app_router.js;
}

location ~ /test/js/app_layout_controller.js {
alias /vagrant/test/js/app_layout_controller.js;
}

location ~ /test/js/apps/navbar/sections/layout/navbar_layout_controller.js {
alias /vagrant/test/js/apps/navbar/sections/layout/navbar_layout_controller.js;
}

location ~ /test/js/apps/navbar/sections/navbar/navbar_options_view.js {
alias /vagrant/test/js/apps/navbar/sections/navbar/navbar_options_view.js;
}

location ~ /test/js/apps/navbar/sections/navbar_all_views.js {
alias /vagrant/test/js/apps/navbar/sections/navbar_all_views.js;
}

location ~ ^/test/js/apps/(.*/testpage_.*\.js)$ {
alias /vagrant/test/js/apps/$1;
}

location ~ ^/test/js/(.*)$ {
alias /vagrant/js/$1;
}

location ~ ^/build/js/(.*)$ {
alias /vagrant/artifacts/www/js/$1;
}

location ~ ^/build/css/(.*)$ {
alias /vagrant/artifacts/www/css/$1;
}

location ~ ^/(.*main.*)\.[@\-_\/\d\w]+\.(js|css)$ {
alias /vagrant/$1.$2;
}

location ~ ^/(css|js|fonts|favicon.ico) {
root /vagrant;
}

location ~ ^/receipts/js/(.*)$ {
alias /vagrant/receipts/js/$1;
}

location ~ ^/bower_components/(.*)$ {
alias /vagrant/bower_components/$1;
}

location ~ ^/login-promo/ {
access_log off;
proxy_pass https://production;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ~ ^/(admin|login|logout|index|build|testpage|receipts|open|reset|resetpage|privacy|change|activeUser|personPrivacyAcceptances) {
access_log off;

proxy_pass http://appserver;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

我不确定重定向的实际来源,它可能来自应用程序服务器后端或前端 JavaScript。有没有一种方法可以确保所有重定向都采用访问客户端使用的端口?


更新:只需添加一个 <a href="/login">login</a>链接到根页面并尝试使用该链接导航会将我重定向到 http://localhost:80/login而不是 http://localhost:8080/login .

最佳答案

这可能是将 guest 的 nginx 端口转发到主机上的另一个端口的不良副作用。

参见 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect

在最后一个位置 block 中停用代理重定向应该可以解决问题:

proxy_redirect off;

关于http - 重写重定向以包括用于访问服务的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30132135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com