使用ssh端口转发时无法访问服务器的localhost

时间:2021-05-26 15:39:39

标签: flask axios bootstrap-vue

我正在使用 Flask 和 Vue 开发单页应用程序。到目前为止,我一直在我的笔记本电脑上本地开发和运行 Flask 和 Vue。我现在已经将两者都移到了服务器上,并希望在那里长期运行它们。现在,我保留了原始的“localhost:5000”设置。 Flask 和 Vue 都可以工作,来自 Vue 的 axios 请求到达 Flask 应用程序。但是,为了使后者不仅在服务器环境上工作而且在我的客户端笔记本电脑上工作,我使用了 ssh 端口转发。现在的实际问题是:我的网站在我的本地浏览器中显示给我,我可以点击,但 axios-requests 不起作用。这是因为请求试图访问我的笔记本电脑的本地主机,而不是服务器的本地主机(当我启动本地 Flask 应用程序时,请求工作)。我确定我只是在这里遗漏了一些重要的东西 - 我在客户端 - 服务器架构方面没有太多经验。

我在 Vue.js 中的一个请求:

methods: {
    getProjects() {
      const path = 'http://localhost:5000/projects';
      axios.get(path)
        .then((res) => {
          this.projects = res.data;
          this.rows = this.projects.length;
          this.setColumns();
        })
        .catch((error) => {
          console.error(error);
        });
    },
...

Flask 应用(服务器端)正在运行:

http://0.0.0.0:5000/

我的 ssh 端口转发:

ssh -o GatewayPorts=true -L 8081:0.0.0.0:8080 me_the_user@the_server

欢迎提出任何建议。

1 个答案:

答案 0 :(得分:0)

好的,我现在开始工作了。问题很简单,我只转发了前端/Vue 端口(8080:0.0.0.0:8080),而不转发了后端/Flask 端口(5000:0.0.0.0:5000)。