添加参数的nginx域转发
我现在一直在nginx上遇到一个奇怪的问题。我有两台nginx服务器,一台托管我想转发到另一台服务器的内容。正在进行转发的站点已启用以下配置:添加参数的nginx域转发,nginx,configuration,dns,server,devops,Nginx,Configuration,Dns,Server,Devops,我现在一直在nginx上遇到一个奇怪的问题。我有两台nginx服务器,一台托管我想转发到另一台服务器的内容。正在进行转发的站点已启用以下配置: server { listen 80; server_name pastdomain.com; return 301 https://domain.com$request_uri?from_past_domain=true; } server { listen 443; server_name pastdomain.com; r
server {
listen 80;
server_name pastdomain.com;
return 301 https://domain.com$request_uri?from_past_domain=true;
}
server {
listen 443;
server_name pastdomain.com;
return 301 https://domain.com$request_uri?from_past_domain=true;
# bunch of ssl config here
}
基本上,我希望将所有流量发送到新服务器,在那里可以使用来自_pass_域的新get变量进行解释,我可以根据需要在新服务器上进行解释
即。
pastdomain.com/thing/thing1/1/
会转化为
domain.com/thing/thing1/1?from\u pass\u domain=true
现在它似乎正在工作,除了我刚刚访问pastdomain.com的情况
而是从_pass_domain=true获取domain.com/
这是不正确的。此外,它没有正确添加新的get参数
也就是说,如果我有pastdomain.com?test=1和test2=2,它将从\u pass\u domain=true转发到domain.com/?test=1和test2=2
如何才能正确转发此内容?如果要更改URI,应使用。在这种情况下,nginx将处理正确的请求参数
此外,您还可以使用HTTP和HTTPS
server {
listen 80;
listen 443 ssl;
server_name pastdomain.com;
rewrite ^(.*)$ https://domain.com$1?from_past_domain=true permanent;
# bunch of ssl config here
# DO NOT use `ssl on;`
}
它已被弃用。改用listen指令的ssl标志。