:8080 处有一个子域名,从 :80/sub 重定向

:8080 处有一个子域名,从 :80/sub 重定向

我正在尝试在 Nginx 后面的端口 8080 上设置一个服务器。

我希望当尝试访问 myserver/sub 时,/sub 之后的所有内容都重定向到 8080,而不重定向 sub。目前,我无法从 URL 中删除 sub。

我的位置配置是:

location /sub
{
  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_http_version 1.1;
  proxy_set_header Connection $connection_upgrade;
  Upgrade $http_upgrade;
  proxy_pass_header Upgrade;
  proxy_pass_header Connection;
  rewrite /sub/(.*) /$1 break;
  proxy_pass http://localhost:8080;
}

如您所见,我有一个开发版的 nginx 来代理 websocket……

要清楚:我想要的是,如果我写入 url myserver/sub/connect,它将转发相当于 myserver:8080/connect 的 URL,而 url myserver/sub 将相当于 myserver:8080。但是,用户必须不知道它发生在端口 8080 上,并且必须认为所有事情都在 /sub 中。

答案1

请阅读文档:http://nginx.org/r/proxy_pass 并替换您的:

location /sub
{
  [...]
  rewrite /sub/(.*) /$1 break;
  proxy_pass http://localhost:8080;
}

location /sub/ {
    [...]
    proxy_pass http://localhost:8080/;
}

相关内容