OpenShift基础使用指南五:DIY NGINX

起因:@sdandroid.com 的DIY NGINX不成功,故尝试搭建

前提:已经创建DIY APP,并SSH到APP。以下命令在SSH中操作。

此文在2013年03月22日测试通过,因Openshift更新导致不能安装成功不在此文讨论之列。

搭建过程



#下载源码包

cd $OPENSHIFT_DATA_DIR

wget http://nginx.org/download/nginx-1.2.2.tar.gz

tar zxf nginx-1.2.2.tar.gz

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.bz2

tar jxf pcre-8.31.tar.bz2

#开始编译nginx

makedir nginx1.2

cd nginx-1.2.2

./configure --with-pcre=$OPENSHIFT_DATA_DIR/pcre-8.31 --prefix=$OPENSHIFT_DATA_DIR/nginx1.2

make

make install

cd $OPENSHIFT_DATA_DIR

#配置NGINX

vim nginx1.2/conf/nginx.conf

http {



server {

listen 127.7.192.129:8080;

server_name 127.7.192.129;



}



}


 listen和server_name的IP和端口由


echo $OPENSHIFT_INTERNAL_IP

echo $OPENSHIFT_INTERNAL_PORT


得到

另外在启动NGINX前 请killall ruby,不然会因端口占用而失败

在$OPENSHIFT_DATA_DIR/nginx.1.2 目录中建立start.sh 和restart.sh

start.sh 内容为


#!/bin/bash

# start nginx

killall ruby

$OPENSHIFT_DATA_DIR/nginx1.2/sbin/nginx


restart.sh 内容为


#!/bin/bash

# restart nginx

killall nginx

$OPENSHIFT_DATA_DIR/nginx1.2/sbin/nginx


千万别忘记


chomd +x start.sh restart.sh


在~/app-root/repo/.openshift/action_hooks目录中的start 注释掉


nohup $OPENSHIFT_REPO_DIR/diy/testrubyserver.rb $OPENSHIFT_INTERNAL_IP $OPENSHIFT_REPO_DIR/diy > $OPENSHIFT_HOMEDIR/diy-0.1/logs/server.log 2>&1 &


并在末尾加入


$OPENSHIFT_DATA_DIR/nginx1.2/start.sh


stop 的exit 0 前加入


killall nginx


PS:其它配置方法同nginx

关于Openshift端口使用问题


大部分你熟悉的端口都已经在内外两边都为官方应用保留了,内部你只可以用 15000 – 35530,对外只可以 bind 到 ${OPENSHIFT_INTERNAL_PORT} 也就是 8080,会通过 80 端口转发给外部。 Quote marguerite