起因:@sdandroid.com 的DIY NGINX不成功,故尝试搭建
前提:已经创建DIY APP,并SSH到APP。以下命令在SSH中操作。
此文在2013年03月22日测试通过,因Openshift更新导致不能安装成功不在此文讨论之列。
搭建过程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#下载源码包
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和端口由
1
2
3
4
5
6
7
8
9
|
echo $OPENSHIFT_INTERNAL_IP
echo $OPENSHIFT_INTERNAL_PORT
|
得到
另外在启动NGINX前 请killall ruby,不然会因端口占用而失败
在$OPENSHIFT_DATA_DIR/nginx.1.2 目录中建立start.sh 和restart.sh
start.sh 内容为
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#!/bin/bash
# start nginx
killall ruby
$OPENSHIFT_DATA_DIR/nginx1.2/sbin/nginx
|
restart.sh 内容为
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#!/bin/bash
# restart nginx
killall nginx
$OPENSHIFT_DATA_DIR/nginx1.2/sbin/nginx
|
千万别忘记
1
2
3
4
5
6
7
|
chomd +x start.sh restart.sh
|
在~/app-root/repo/.openshift/action_hooks目录中的start 注释掉
1
2
3
4
5
6
7
|
nohup $OPENSHIFT_REPO_DIR/diy/testrubyserver.rb $OPENSHIFT_INTERNAL_IP $OPENSHIFT_REPO_DIR/diy > $OPENSHIFT_HOMEDIR/diy-0.1/logs/server.log 2>&1 &
|
并在末尾加入
1
2
3
4
5
6
7
|
$OPENSHIFT_DATA_DIR/nginx1.2/start.sh
|
stop 的exit 0 前加入
1
2
3
4
5
6
7
|
killall nginx
|
PS:其它配置方法同nginx
关于Openshift端口使用问题
大部分你熟悉的端口都已经在内外两边都为官方应用保留了,内部你只可以用 15000 – 35530,对外只可以 bind 到 ${OPENSHIFT_INTERNAL_PORT} 也就是 8080,会通过 80 端口转发给外部。 Quote marguerite