2016-02-12 174 views
1

我在ec2服务器上托管了一个nodejs应用程序。目前我使用nginx代理应用程序并从同一台机器提供静态文件。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的服务器来提供文件服务,并从简单的新服务器代理?

回答

0

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

这有一个额外的好处,您可以轻松地添加更多的服务器在您的应用层和负载平衡,除了将您的静态proxy_pass转换为上游(或使用“下一个服务器”)之外,不需要更改代理级别。

相关问题