在这个答案的评论区题主重新描述了需求, 因此实际上整个问题所描述的有误. 因此编辑答案:
如果你期望把本地的某个服务临时暴露给远端的服务器, 一个简单的方案, 可以考虑用 ssh 的隧道.
$ ssh -R 0.0.0.0:8080:127.0.0.1:1234 user@hostname
以上命令建立了一个隧道, 使得本地的1234端口(127.0.0.1:1234)暴露于那台机器的外网8080端口(0.0.0.0:8080)
需要注意的是, 你远端的 sshd_config 必须打开这些选项:
AllowAgentForwarding yes # 一般来说默认打开
AllowTcpForwarding yes # 默认打开
GatewayPorts clientspecified # 如果不如此配置, 只能映射到远端的127.0.0.1
IBM 的这篇文档很好的详细讲了这个东西:
https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html
在 ssh 暴露完成之后, 如果没有其它静态文件的内容, 可以直接访问远端的8080相当于访问本地的1234
如果有其它静态的内容或者配置, 那需要远端配置一下web服务器做下反代.
以下是原答案
你远程如果也是 http(s) server 的话, 直接用 webpack devserver 的 proxy 不就可以了
最简单的例子:
module.exports = {
//...
devServer: {
proxy: {
'/api': 'http://target_server'
}
}
};
支持多个代理的目标, 配置选项有不少, 对 url 进行 rewrite 也是可行的, 可以参见:
https://webpack.docschina.org/configuration/dev-server/#devserverproxy
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…