我有一个 CMS 实例,其管理面板硬编码在/admin
( https://example.com/admin
) 处,并且无法通过 CMS 进行更改。我想尝试使用 Nginx 来执行此任务。CMS 作为 Nodejs 应用程序运行并由 提供服务proxy_pass
。
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout 30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:8000;
}
是否可以仅使用 Nginxhttps://example.com/admin
来替代https://example.com/custom
?非常欢迎任何建议,因为我不知道从哪里开始。
PS 如果重要的话,CMS 就是 Directus。
更新。我尝试使用Nginx 反向代理 + URL 重写但它没有帮助。以下是我的尝试:
location /foo {
rewrite /foo/(.*) /admin/$1 break;
proxy_pass localhost:8000;
proxy_redirect off;
proxy_set_header Host $host;
}
给了我/foo
=>/foo/admin/login?redirect=/foo/
location /foo {
rewrite /foo/(.*) /$1 break;
proxy_pass localhost:8000/admin;
proxy_redirect off;
proxy_set_header Host $host;
}
给了我/foo
=>/admin/foo