使用Https客户端的反向代理服务器到我的机器上本地运行的Http服务器

时间:2018-05-01 19:16:52

标签: node.js express nginx https nginx-reverse-proxy

我有一个使用HTTPS的已发布网站。该站点需要与HTTP节点Express API进行通信。 API在我的本地计算机上运行。在我将客户端应用程序切换为使用HTTPS之前,一切正常。现在我收到混合内容警告。我一直在阅读反向代理,并想知道这是否可以解决我的问题。是否可以将请求代理到我的localhost?或者localhost是否指向代理所在的服务器?

我一直在考虑使用nginx作为反向代理服务器,但我没有使用代理的经验而不是积极的如何去做。

在我深入研究之前,我主要想知道是否可能。

1 个答案:

答案 0 :(得分:0)

是的,这是使用nginx(或任何其他反向代理)的非常标准的用例。您可以配置需要转发到后端应用程序和代理(通过proxy_pass指令)的位置前缀等。任何静态内容都可以直接从nginx提供。所有这些都可以落后于nginx。

假设您的应用程序永远不会发出使用“http://”的绝对URL,这应解决您的混合内容警告。

您可能希望阅读一些教程,但配置的基础知识将是:

server {
    listen 443 ssl; # you can also add http2
    server_name hostnames that you listen for;
    ssl_certificate_key /path/to/cert.key;
    ssl_certificate /path/to/cert.pem;

    root /var/www/sites/foo.com;

    location /path/handled/by/application {
        proxy_pass http://localhost:8000; # or whatever port is
    }

}