Redirect nginx 301丢弃由vagrant转发的端口

Redirect nginx 301丢弃由vagrant转发的端口,redirect,nginx,rewrite,vagrant,Redirect,Nginx,Rewrite,Vagrant,我有一个流浪的虚拟机在端口80上运行nginx。我的主机将端口8080转发到流浪vm的端口80 我需要用301重定向重写一个url,这是可行的,但是我用来通过隧道(8080)访问nginx的端口被丢弃,重定向失败 http://server.com:8080/blog/two -变成- -应该是- 示例: rewrite ^/blog/(.*)$ /blog.php?article=$1 last; 谢谢 从主机标题字段中提取原始端口号: set $port ''; if ($http_h

我有一个流浪的虚拟机在端口80上运行nginx。我的主机将端口8080转发到流浪vm的端口80

我需要用301重定向重写一个url,这是可行的,但是我用来通过隧道(8080)访问nginx的端口被丢弃,重定向失败

http://server.com:8080/blog/two
-变成-

-应该是-

示例:

rewrite ^/blog/(.*)$ /blog.php?article=$1 last;

谢谢

主机
标题字段中提取原始端口号:

set $port '';

if ($http_host ~ :(\d+)$) {
    set $port :$1;
}

rewrite ^/blog/(.*)$ http://example.com$port/blog.php?article=$1;

重写^/blog/(.*)$http://$http_host/blog.php?article=$1 last;[nginx中主机和http_主机的区别是什么][1][1]:如果您不想要端口
8080
,那么为什么nginx听端口
8080
,而不是
80
,或者我理解错了
rewrite ^/blog/(.*)$ /blog.php?article=$1 last;
set $port '';

if ($http_host ~ :(\d+)$) {
    set $port :$1;
}

rewrite ^/blog/(.*)$ http://example.com$port/blog.php?article=$1;