Skip to content

Instantly share code, notes, and snippets.

@codexss
Last active August 30, 2017 05:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save codexss/5662543ec359db445c59595b7c9b4153 to your computer and use it in GitHub Desktop.
Save codexss/5662543ec359db445c59595b7c9b4153 to your computer and use it in GitHub Desktop.
#进入缓存目录
cd $OPENSHIFT_TMP_DIR
#下载需要的源码
wget http://nginx.org/download/nginx-1.11.4.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
wget https://www.openssl.org/source/openssl-1.1.0a.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.gz
git clone https://github.com/cuber/ngx_http_google_filter_module
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module
解压源码
tar xzvf nginx-1.11.4.tar.gz
tar xzvf pcre-8.39.tar.gz
tar xzvf openssl-1.1.0a.tar.gz
tar xzvf zlib-1.2.8.tar.gz
#编译Nginx
cd nginx-*
./configure \
  --prefix=$OPENSHIFT_DATA_DIR \
  --with-pcre=../pcre-8.39 \
  --with-openssl=../openssl-1.1.0a \
  --with-zlib=../zlib-1.2.8 \
  --with-http_ssl_module \
  --add-module=../ngx_http_google_filter_module \
  --add-module=../ngx_http_substitutions_filter_module
make install
#修改Nginx配置文件
vi $OPENSHIFT_DATA_DIR/conf/nginx.conf
#在server段按照下面的格式添加以下内容
http {
    …
    server {
    	resolver 8.8.8.8;
        listen       $OPENSHIFT_IP:$OPENSHIFT_PORT;
        server_name  localhost;
		google on;
		subs_filter http://example.com https://example.com;
		#这里修改成你的域名,xxx-xxx.rhcloud.com或者你绑定的域名。
        … 
        }
    …
    }

mv $OPENSHIFT_DATA_DIR/conf/nginx.conf $OPENSHIFT_DATA_DIR/conf/nginx.conf.template
#修改启动命令
echo '' > ${OPENSHIFT_REPO_DIR}/.openshift/action_hooks/start
cat>${OPENSHIFT_REPO_DIR}/.openshift/action_hooks/start<<EOF
#
#!/bin/bash
# The logic to start up your application should be put in this
# script. The application will work only if it binds to
# $OPENSHIFT_DIY_IP:8080
#nohup $OPENSHIFT_REPO_DIR/diy/testrubyserver.rb $OPENSHIFT_DIY_IP $OPENSHIFT_REPO_DIR/diy |& /usr/bin/logshifter -tag diy &
sed -e "s/`echo '$OPENSHIFT_IP:$OPENSHIFT_PORT'`/`echo $OPENSHIFT_DIY_IP:$OPENSHIFT_DIY_PORT`/;s/8.8.8.8/`cat /etc/resolv.conf |grep -i nameserver|head -n1|cut -d ' ' -f2`/" $OPENSHIFT_DATA_DIR/conf/nginx.conf.template > $OPENSHIFT_DATA_DIR/conf/nginx.conf
nohup $OPENSHIFT_DATA_DIR/sbin/nginx > $OPENSHIFT_DIY_LOG_DIR/server.log 2>&1 &
EOF

#修改关闭命令
echo '' > ${OPENSHIFT_REPO_DIR}/.openshift/action_hooks/stop
cat>${OPENSHIFT_REPO_DIR}/.openshift/action_hooks/stop<<EOF
#!/bin/bash
source $OPENSHIFT_CARTRIDGE_SDK_BASH

# The logic to stop your application should be put in this script.
if [ -z "$(ps -ef | grep nginx | grep -v grep)" ]
then
    client_result "Application is already stopped"
else
    kill `ps -ef | grep nginx | grep -v grep | awk '{ print $2 }'` > /dev/null 2>&1
fi
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment