首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Apache和反向代理将domain.com/api路由到特定端口

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

Stack Overflow用户
提问于 2019-02-17 15:47:10
回答 1查看 1.7K关注 0票数 3

我在端口1399上运行了一个使用Node.js的Express.js应用程序,为用户提供了一个rest。可以使用http://example.com:1399访问API。我用的是SSL加密。

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

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

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

代码语言:javascript
复制
<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秒后使加载选项卡超时。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-22 23:00:06

解决方案:

  1. 将这两行添加到/etc/apache2/sites-available/000-default-le-ssl.conf之前的</VirtualHost>
代码语言:javascript
复制
ProxyPass        "/api"  "http://example.com:1399/"
ProxyPassReverse "/api"  "http://example.com:1399/"
  1. 启用mod_proxy和mod_proxy_http
代码语言:javascript
复制
sudo a2enmod proxy
sudo a2enmod proxy_http
  1. 重新启动apache2:
代码语言:javascript
复制
sudo /etc/init.d/apache2 restart
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54734880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档