Apache Passenger的配置通常有以下5类,需要协同工作:
- 程序加载
- 性能优化
- 安全
- 请求/应答定义化
- 日志和定位问题
我以工作的项目的配置文件为例来进行参数(包含案例中的参数但不仅限于案例中参数)讲解。
# security
PassengerDefaultUser apache
# application loading
PassengerRoot /opt/rh/rh-passenger40/root/usr/share/passenger/phusion_passenger/locations.ini
PassengerRuby /opt/rh/rh-ruby22/root/usr/bin/ruby
# performance tuning
PassengerMaxPoolSize 60
PassengerPoolIdleTime 150
PassengerMinInstances 20
PassengerMaxRequests 1000
# application loading
RailsEnv staging
RackEnv staging
User Account Sandboxing
--> Passenger切换用户的一个特性
假设在一个server上我们有多个应用,有了这个特性,我们就可以给不同的应用执行不同的用户,以提高系统整体的安全性。
例如一个server上有两个应用,一个应用可能是A的,一个是B的,如果以同一用户去运行所有应用,则B可以读到A的敏感数据。这是很不安全的。User account sandboxing就解决了这个问题。该特性很容易给每个应用指定一个用户。只要不同应用的文件权限设置无误,则该特性就降低了或着消除一定的安全隐患。B无法查看A的数据,反之亦然。
PassengerDefaultUser
--> 给应用配置特定用户, 且在切换用户失败的情况下,都切换到默认用户
PassengerRoot
--> P