gpt4 book ai didi

node.js - 使用 Apache 和反向代理将 domain.com/api 路由到特定端口

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:04 25 4
gpt4 key购买 nike

我有一个使用 Express.js 的 Node.js 应用程序,它在端口 1399 上运行,为用户提供了一个休息 API。可以使用 http://example.com:1399 访问 API .我正在使用 Let's Encrypt for SSL。

问题是只有没有 SSL 的请求才能工作,因为 Let's Encrypt 只允许在默认端口(例如端口 443)上使用 HTTPS。使用https://example.com:1399/ (使用 https)在 Firefox 上给我一个安全连接失败错误。

为了能够在端口 443 之外的其他端口上也提供 SSL,我想路由来自 https://example.com/api 的所有请求至 https://example.com:1399/api .如何使用 Apache 和反向代理来做到这一点?

我已经尝试了 this 中建议的解决方案通过在/etc/apache2/sites-available/000-default-le-ssl.conf 中添加以下内容来回答:

<Virtual Host *:443>
...
ProxyPass /api/ https://127.0.0.1:1399/api/
ProxyPassReverse /api/ https://127.0.0.1:1399/api/
</VirtualHost>

但是,当调用 https://example.com/api/ 时它给我一个内部服务器错误。使用 http://调用它没有任何响应,并且会在 10 秒后使加载选项卡超时。

最佳答案

解决方案:

  1. 将这两行添加到 /etc/apache2/sites-available/000-default-le-ssl.conf 就在 </VirtualHost> 之前:
ProxyPass        "/api"  "http://example.com:1399/"
ProxyPassReverse "/api" "http://example.com:1399/"
  1. 启用mod_proxymod_proxy_http:
sudo a2enmod proxy
sudo a2enmod proxy_http
  1. 重启apache2:
sudo /etc/init.d/apache2 restart

关于node.js - 使用 Apache 和反向代理将 domain.com/api 路由到特定端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54734880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com