如何解决在 bitnami 灯堆栈实例上运行 nodejs 应用程序
我目前有一个 bitnami LAMP 堆栈在 www.uktransportprofiles.co.uk 上运行托管我的网站,我有一个 nodejs 实例在 www.uktransportprofiles.co.uk:7200 上运行。但是我想代理传递这个,以便可以在 www.uktransportpfoiles.co.uk/api 找到 api 并且为此也有 ssl 证书。
我已经尝试添加
SSLProxyEngine on
ProxyPass /api http://localhost:7200
ProxyPassReverse /api http://localhost:7200
到
/opt/bitnami/apache2/conf/bitnami/bitnami.conf
&
/opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf
但这并没有奏效。任何想法和建议将不胜感激
解决方法
Bitnami 开发人员在这里!
最终,您有一个 Apache 服务器侦听两个端口(80 和 443)上的传入连接,并且您希望根据 URI 将其中一些转发到另一个后端服务器。
正如您所指出的,这可以通过 ProxyPass
和 Apache 内置的代理功能来实现。您可以查看原始文档以进一步参考。
https://httpd.apache.org/docs/2.4/mod/mod_proxy.html
Bitnami 的 LAMP 将每个 Apache VirtualHost
(80 和 443)配置分隔为两个文件,bitnami.conf
和 bitnami-ssl.conf
。如果您只希望您的用户通过 SSL 访问 API,则只需修改 bitnami-ssl.conf
。此外,我想您想坚持使用您的主域使用的相同 SSL 证书,因此您应该跳过 SSLProxyEngine
指令。
作为您提议的更改的替代方案,您可以将以下内容附加到 bitnami-ssl.conf
VirtualHost 以根据子 URI 代理传递一些请求。
<VirtualHost _default_:443>
...
<Location "/example">
ProxyPass "http://example.com/"
ProxyPassReverse "http://example.com/"
</Location>
..
</VirtualHost>
执行更改后,您需要确保重新启动Apache:
$ sudo /opt/bitnami/ctlscript.sh restart apache
使用proxypass直接查询upstream时,可以检查输出是否一致:
$ curl -k --silent https://34.XXX.XXX.XXX/example -o out.html && curl --silent https://example.com -o out2.html && diff <(md5sum out.html | awk '{ print $1 }') <(md5sum out2.html | awk '{ print $1 }')
问候,
何塞·安东尼奥·卡莫纳
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。