来自互联网的客户需要访问一个只能从虚拟专用网访问的web服务器,域名是internal.domain,而我对它没有控制权。在内部,要登录的主页面是caas.internal.domain:6643。要从互联网连接,用户登录到URL,指向通过login.external.domain:9943将流量路由到caas.internal.domain:6643的nginx。来自caas.internal.domain的响应流量被重定向到login.external.domain,没有问题。html、json、js中的所有internal.domain Urls都被external.domain替换。唯一的问题来自下面的内部url,它没有翻译查询字符串参数。
应改为
有1234和5678的动力。
这是我的配置:
server {
listen 9943 ssl;
listen 443 ssl;
server_name external.domain;
ssl_certificate /etc/nginx/ssl/mytest-web.crt;
ssl_certificate_key /etc/nginx/ssl/mytest-web.key;
location / {
resolver 8.8.8.8;
proxy_set_header Accept-Encoding "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 1g;
proxy_pass https://caas.internal.domain:6643$request_uri;
proxy_redirect https://caas.internal.domain:6643 https://login.external.domain:9943;
#sub_filter_types text/css text/xml text/javascript application/json;
sub_filter_types *;
sub_filter_once off;
sub_filter "caas.internal.domain:6643" "login.external.domain:9943";
}
} 如何将内部urls变量替换为具有相同变量的外部urls?
希望这是有意义的
非常感谢
发布于 2021-03-18 16:15:08
您需要将以下内容添加到internal.domain server块中:
location /caas/propConfig/myApp.json {
return 301 https://external.domain:9943$request_uri;
}这将将包含前缀的所有URL重定向到另一个域中的相应URL。
https://serverfault.com/questions/1057452
复制相似问题