Nginx 重定向端口到 url

Nginx 重定向端口到 url

我正在运行安装了 VestaCP 的 VPS。Web 面板在端口上运行8083。我设法让它运行panel.domain.com,但是,使用子域时,面板中的某些 URL 会失去功能。

我想知道如何让端口8083指向domain.com/panel

以下是我在 nginx 配置中尝试过的操作:

server {
  listen        108.xx.xx.xxx:443;
  server_name domain.com;

  root /var/www/ghost;
  index index.html index.htm;

  location /panel {
    proxy_pass https://127.0.0.1:8083;
  }
}

答案1

如果您想通过访问您的 VestaCP 控制面板domain.com/panel,您可以使用这个 nginx 配置:

server {
    listen 108.xx.xx.xxx:443;
    server_name domain.com;

    root /var/www/ghost;
    index index.html index.htm;

    location ~ /panel(.*)$ {
        rewrite ^ https://domain.com:8083$1 permanent;
    }
}

/panel这会使 nginx 向所有以开头的URI 发送 301 重定向https://domain.com:8083,从而允许您通过 访问面板https://domain.com/panel

但是,VestaCP 面板中生成的所有 URL 仍直接指向https://domain.com:8083。如果您想将它们更改为以 开头https://domain.com/panel,则需要修改 VestaCP。VestaCP 可能没有直接更改域的选项,因此您可能需要直接修改 VestaCP 代码,我不建议这样做。

答案2

在端口 8083 上运行的是您的 Web 面板,我推测它不是基于 Nginx 的。要使端口 8083 “指向”任何内容,您需要自定义 Web 面板的行为方式,而不是 Nginx。

也许您想要的是与要求相反的结果,让 Nginx 监听端口 80 或 433,然后重定向或代理domain.com/panel到 Web 面板?

您还应该澄清“指向”语言是“重定向到”还是“代理到”。

相关内容