我正在使用nginx的Passenger在虚拟Slice主机上为我的Rails应用程序服务。 我正在考虑放置一个反向代理服务静态内容以及处理etagged行动。
我可以使用现有的nginx安装,只需将其更改为反向代理? 我甚至需要一个Web服务器? 在这种情况下,典型的架构是什么样的?
nginx rev-proxy -> nginx web server -> passenger?
要么
nginx rev-proxy -> passenger?
在这种情况下,nginx是最好的select吗?
我的反向代理可以驻留在同一个切片?
谢谢
是的,你可以使用你的nginx安装。 你根本不需要代理,只需要继续使用nginx和nginx服务器的静态内容
stream行的意见可能是,如果你有Apache或Squid运行,你可能会考虑使用它们,但既然你已经有了nginx,nginx是一个不错的select。 避免使用乘客服务静态文件可能会提供显着的性能提升 – 但当然你的milage会有所不同。
相同的服务器/切片可能很好,如果你的stream量太大,以至于会产生影响,肯定会把它移动到另一台服务器上,但是没有理由去代理它,只需要改变这个URL即可。
示例configuration文件将是:
server { listen www.example.com:80; server_name www.example.com; location ~* ^.+\.(jpg|jpeg|gif|png|css|bmp|js|ico|swf)$ { root /home/static/files; expires 7d; } location / { root /home/rails_app; passenger_enabled on; }
}
显然,根据需要添加任何其他文件types。