我有一个可运行的Angular-Nodejs pwa应用程序,通过Ubuntu服务器上的nginx反向代理设置运行。让我们称之为https://example.com
我有一个有效的博客机制,可通过https://example.com/d?d=2上的概述页面从外部访问(意味着您无需登录)
问题:如何实现对https://blog.example.com的使用与使用https://example.com/d?d=2的效果相同?
换句话说:我想在我的常用域中添加一个子域“ blog”以能够看到博客,但是我不想更改有关已实现的博客机制的应用程序。
我有一个可行的解决方案,但是它很笨拙,根本不像我希望的那样是“成角度的方式”。
我当前的解决方案:
...
server { ...
server_name blog.example.com; ...
proxy_pass http://blog.123.123.123.123:123; ...
} ...
ip地址和端口与pm2上运行的应用程序匹配的地方
123.123.123.123 blog.123.123.123.123
if (window.location.hostname.split('.')[0] === 'blog') {
let port = '';
if (this.$isDev) {
port = `:${window.location.port}`;
}
return window.location.replace(
`${window.location.protocol
}//${window.location.hostname.slice(5)
}${port}/d?d=2`
);
}
当将5.放置在默认路由组件中时,此方法有效,但由于默认路由页面会很快呈现,然后被目标博客页面覆盖,因此给用户留下不好的体验。
子问题1 :
理想情况下,我想在nginx中设置重定向以直接指向123.123.123.123/d?d=2,但是我认为这里不可能包含路径?
子问题2 :
另外,必须有一种更好的方法来解决“角”面。当然可以在路由机制本身中使用备用主机名,但是如何?