nginx从另一台服务器提供静态文件

时间:2016-02-12 13:33:33

标签: node.js nginx amazon-ec2 proxy

我在ec2服务器上托管了一个nodejs应用程序。目前我正在使用nginx代理应用程序并提供来自同一台机器的静态文件。

出于安全原因,我正在实现另一个仅作为代理服务器的服务器,主应用程序将位于另一个实例上,并且只有一个内部来自单个IP。

将请求代理到内部实例很容易,但我无法弄清楚如何提供位于另一台服务器上的静态文件......

Groups

是否可以执行以下操作:?

    location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|med$
        root /usr/src/www/static;
        access_log off;
        expires 24h;
    }

如果是这样,我应该在应用程序上实现另一个nginx服务器来提供文件,还只是从新服务器代理?

1 个答案:

答案 0 :(得分:1)

在nginx的上下文中,静态文件总是需要在本地文件系统上。因此,您需要将proxy_pass执行到应用程序计算机。您可能只想将应用程序放在第二台服务器上的nginx后面,然后您的代理服务器就可以了。机器只是做一个proxy_pass而且它不需要知道或关心什么是静态的和什么是不是(除非你有安全理由需要在顶级代理处分离它们) 。

这样做的另一个好处是,除了将静态proxy_pass转换为上游(或使用"下一个服务器&#)之外,您可以轻松地在应用层中添加更多服务器并在它们之间进行负载平衡而不更改代理级别34)。