【问题标题】:nginx serving static files from another servernginx 从另一台服务器提供静态文件
【发布时间】:2016-05-23 16:22:02
【问题描述】:

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

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

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

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

是否可以这样做:?

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

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

【问题讨论】:

    标签: node.js nginx amazon-ec2 proxy


    【解决方案1】:

    在 nginx 的上下文中,静态文件总是需要位于本地文件系统上。所以你需要对'app机器做proxy_pass。您可能只想将应用程序也放在第二台服务器上的 nginx 后面,因此您的“代理”机器只做一个 proxy_pass,它不需要知道或关心什么是静态的,什么不是(除非您出于安全原因也需要在顶级代理中将它们分开)。

    这还有一个额外的好处,即您可以轻松地在应用层中添加更多服务器并在它们之间进行负载平衡,而无需更改代理级别,除非将您的静态 proxy_pass 转换为上游(或使用“下一个服务器”)。

    【讨论】:

      猜你喜欢
      • 2014-07-25
      • 2010-12-01
      • 2018-05-17
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多