我正在运行安装了 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 面板?
您还应该澄清“指向”语言是“重定向到”还是“代理到”。