Elastic Beanstalk Rails – 修改passengerconfigurationpassenger_max_pool_size

我需要增加在乘客上运行的Rails应用程序的passenger_max_pool_size。 我已经使用Elastic beanstalk进行部署。 任何想法,如何去做这个? 有没有一个选项设置或容器命令来做到这一点

我意识到这是一个旧post,但是没有答案。

最好的select是在您的项目的根目录中使用.ebextensions目录,并添加一个conf文件来configuration乘客。 我在我的项目中创build了一个.ebextensions/01_passenger.conf文件。

对于此文件的内容部分,您可能需要复制位于此处的现有乘客init文件/opt/elasticbeanstalk/support/conf/passenger

我稍微修改了它,在命令选项中包含了--max-pool-size=${PASSENGER_MAX_POOL_SIZE:-6} 。 您可以使用Beanstalk环境variables来覆盖池大小的默认值6。

 files: "/tmp/passenger.config": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash # # chkconfig: 2345 80 20 # description: Passenger # EB_HTTP_PORT=$(/opt/elasticbeanstalk/bin/get-config container -k http_port) EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user) EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir) EB_APP_PID_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir) EB_APP_LOG_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_log_dir) EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir) EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir) EB_NGINX_VERSION=$(/opt/elasticbeanstalk/bin/get-config container -k nginx_version) . $EB_SUPPORT_DIR/envvars . $EB_SCRIPT_DIR/use-app-ruby.sh if [ -f /etc/elasticbeanstalk/set-ulimit.sh ]; then . /etc/elasticbeanstalk/set-ulimit.sh fi # fixes http://code.google.com/p/phusion-passenger/issues/detail?id=614 export HOME=/tmp export PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY=0 if [ -d /etc/healthd ]; then STARTOPTS="--nginx-version $EB_NGINX_VERSION --nginx-config-template $EB_SUPPORT_DIR/conf/nginx_config_healthd.erb" else STARTOPTS="--nginx-version $EB_NGINX_VERSION --nginx-config-template $EB_SUPPORT_DIR/conf/nginx_config.erb" fi ENV_STAGE=${RACK_ENV:-$RAILS_ENV} # Read from $RAILS_ENV if $RACK_ENV is empty if [ ${ENV_STAGE,,} = "production" ]; then # Convert $ENV_STAGE to lower case and compare to "production" # Disable passenger friendly page for production stage STARTOPTS="$STARTOPTS --no-friendly-error-pages" fi GENERALOPTS="-p $EB_HTTP_PORT --pid-file $EB_APP_PID_DIR/passenger.pid --max-pool-size=${PASSENGER_MAX_POOL_SIZE:-6}" function start() { touch $EB_APP_LOG_DIR/passenger.log if [ -d /etc/healthd ]; then mkdir -p $EB_APP_LOG_DIR/healthd chown -R $EB_APP_USER:$EB_APP_USER $EB_APP_LOG_DIR/healthd fi chown $EB_APP_USER:$EB_APP_USER \ $EB_APP_LOG_DIR/passenger.log passenger start $EB_APP_DEPLOY_DIR $STARTOPTS $GENERALOPTS \ -d -e ${RACK_ENV:-$RAILS_ENV} --user $EB_APP_USER \ --log-file $EB_APP_LOG_DIR/passenger.log } function stop() { passenger stop $GENERALOPTS } function status() { passenger status $GENERALOPTS } case "$1" in start) start ;; stop) stop ;; status) status ;; restart|graceful) stop start ;; reload) su -s /bin/bash -c "touch $EB_APP_DEPLOY_DIR/tmp/restart.txt" $EB_APP_USER ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 ;; esac exit 0 container_commands: 01_config_passenger: command: "cp /tmp/passenger.config /opt/elasticbeanstalk/support/conf/passenger"