NGINX:重写 url 并反向代理到不同的端口
NGINX: Rewrite url and reverse proxy to a different port
我很难重写 url 并将请求反向代理到 spring 启动应用程序。重写有效,但我丢失了端口号,因此它无法正常工作。例如
localhost:80/order.pl
转换为 localhost/home
。端口丢失,应用程序未收到请求
Similar examples联机不行。
server
{
listen 80;
server_name localhost;
set $upstream localhost:8050;
location ~"^\/order.pl$"
{
rewrite "^\/order.pl$ "/home" permanent;
}
location /
{
proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X - Real - IP $remote_addr;
proxy_buffering off;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http: //$upstream;
}
}
如果我不重写,则反向代理可以正常工作,但重写后我将丢失端口号。任何信息将不胜感激。
谢谢
如果端口号与方案的默认端口相同,Nginx 通常不会将端口指定为外部重定向的一部分。 http
的端口 80 和 https
的端口 443。
您可以在重写语句中明确指定端口。
例如:
location = /order.pl {
return 301 $scheme://$host:$server_port/home;
}
注意:我使用 curl
进行测试,因为浏览器出于完全相同的原因从 address-bar 删除了端口。
我很难重写 url 并将请求反向代理到 spring 启动应用程序。重写有效,但我丢失了端口号,因此它无法正常工作。例如
localhost:80/order.pl
转换为 localhost/home
。端口丢失,应用程序未收到请求
Similar examples联机不行。
server
{
listen 80;
server_name localhost;
set $upstream localhost:8050;
location ~"^\/order.pl$"
{
rewrite "^\/order.pl$ "/home" permanent;
}
location /
{
proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X - Real - IP $remote_addr;
proxy_buffering off;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http: //$upstream;
}
}
如果我不重写,则反向代理可以正常工作,但重写后我将丢失端口号。任何信息将不胜感激。
谢谢
如果端口号与方案的默认端口相同,Nginx 通常不会将端口指定为外部重定向的一部分。 http
的端口 80 和 https
的端口 443。
您可以在重写语句中明确指定端口。
例如:
location = /order.pl {
return 301 $scheme://$host:$server_port/home;
}
注意:我使用 curl
进行测试,因为浏览器出于完全相同的原因从 address-bar 删除了端口。