【问题标题】:Apache2 and node.js app running simultaneously on webserverApache2 和 node.js 应用程序在网络服务器上同时运行
【发布时间】:2019-03-06 12:02:38
【问题描述】:

我想在我的网络服务器上同时运行 apache2 和 node.js 应用程序。 我希望我在 www.example.com/myApp 上的网站运行我的应用程序(从端口 8080 代理),并且 www.example.com/* 上的所有其他内容都由 apache 运行(通常在端口 80 上)。我在 StackOverflow 上阅读了几个关于此的问题,但我无法让它正常工作。

我正在使用

yarn start --port 8080 --host 0.0.0.0 --disable-host-check

启动我的应用程序。

为了做到这一点,我在我的 Ubuntu 18.04 VM 上更改了 apache.conf 文件中的值。我正在使用 yarn 运行我的应用程序。

我启用了

sudo a2enmod proxy && sudo a2enmod proxy_http

我的配置文件中有这些行:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ServerName example.com
ProxyPreserveHost On
ProxyRequests Off

如果我添加

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

到我的 apache.conf 文件,应用程序在 www.example.com 上成功运行。 但是,我只能访问安装/运行应用程序的文件夹中的目录。我无法访问 apache 的目录。

如果我添加

ProxyPass /myApp/ http://localhost:8080/
ProxyPassReverse /myApp/ http://localhost:8080/

然后应用程序在 www.example.com/myApp 上运行,这正是我想要的,但 它不再正确运行, 我不知道为什么。 网站上的所有其他 url 都指向我的 apache 目录 (/var/www/html),这也是我想要的。

该应用程序始终在 localhost:8080 上正常运行。

我对这些事情没有经验,感觉我真的很接近第二种解决方案,但由于应用程序停止正常工作,我一定遗漏了一些东西。

【问题讨论】:

  • it does not run correctly anymore是什么意思
  • 本地主机上的应用程序始终正确运行 - 这是一个播放音频文件的应用程序。但是,当我打开 www.exampple.com/myApp 时,我只能看到一条错误消息,上面写着“您的浏览器不支持我们需要的功能”,这显然不是问题。
  • 是应该加载的页面(我正在考虑 htm 和 css)
  • 否,页面未正确加载。显示了一些图片,它们的尺寸不正确。超链接虽然有效。我刚刚发现,如果我像这样删除最后一个斜杠符号:ProxyPass / http://0.0.0.0:8080ProxyPassReverse / http://0.0.0.0:8080,我会得到同样的错误。我认为调用错误的应用目录肯定有问题。
  • 页面已加载,这是个好消息!这意味着反向代理正在工作。图片未正确显示,这可能是 css 文件未加载。你能检查他们是否是吗?

标签: node.js apache proxy webserver


【解决方案1】:

我设法解决了这个配置的问题:

ProxyPass /index.html http://0.0.0.0:8080/
ProxyPassReverse /index.html http://0.0.0.0:8080/

ProxyPass /config http://0.0.0.0:8080/config/
ProxyPassReverse /config http://0.0.0.0:8080/config/
ProxyPass /css http://0.0.0.0:8080/config/
ProxyPassReverse /css http://0.0.0.0:8080/config/
...

因此,通过为 index.html 文件创建代理传递并为应用文件夹中的所有子文件夹添加代理。 我帮助自己解决了thisthis 之类的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 2021-03-02
    • 2019-01-26
    • 2014-06-09
    • 2019-07-27
    • 2014-05-06
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多