我在端口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答案中建议的解决方案
<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秒后使加载选项卡超时。
发布于 2019-02-22 23:00:06
解决方案:
/etc/apache2/sites-available/000-default-le-ssl.conf之前的</VirtualHost>ProxyPass "/api" "http://example.com:1399/"
ProxyPassReverse "/api" "http://example.com:1399/"sudo a2enmod proxy
sudo a2enmod proxy_httpsudo /etc/init.d/apache2 restarthttps://stackoverflow.com/questions/54734880
复制相似问题