老早就想买个服务器,可惜囊中羞涩,一直没有下手,前两天逛阿里云看见个云翼计划,赶紧踩着青春的尾巴买了一年ECS
自己没事耍耍也是好的呀

阿里云翼计划

废话不多说,这就开始

准备工作

  1. 服务器一台 我用的是阿里云centos7
  2. xshell 其它亦可
  3. linux基本操作

nginx和配置

我们一会还要安装node,node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。

安装

  1. 首先安装make gcc之类的东西,编译用

    1
    2
    yum -y install automake autoconf libtool make
    yum install gcc gcc-c++
  2. 选择nginx安装目录,我选的是 /usr/local/src

    1
    cd /usr/local/src
  3. 一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

    1
    2
    3
    4
    5
    6
    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
    tar -zxvf pcre-8.42.tar.gz
    cd pcre-8.42
    ./configure
    make
    make install

可以在ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/选择最新版本pcre

1
2
3
4
5
6
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

可以在http://zlib.net/选择最新版本zlib

  1. 安装ssl
    网络通信安全,功能丰富且自包含的开源安全工具箱
    1
    2
    wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
    tar -zxvf openssl-1.1.1.tar.gz

可以在https://www.openssl.org/source/选择最新版本openssl

  1. 安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2

./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/src/local/pcre-8.42 \
--with-zlib=/usr/src/local/zlib-1.2.11 \
--with-openssl=/usr/src/local/openssl-1.1.1

make
make install

–with-pcre=/usr/src/local/pcre-8.42 指的是pcre-8.42 的源码路径。
–with-zlib=/usr/src/local/zlib-1.2.11 指的是zlib-1.2.11 的源码路径。

安装完成

安装成功后 /usr/local/nginx 目录下如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
drwx------  2 nobody root    4096 Nov  2 10:16 client_body_temp
-rw-r--r-- 1 root root 1034 Nov 1 18:43 fastcgi.conf
-rw-r--r-- 1 root root 1034 Nov 1 18:43 fastcgi.conf.default
-rw-r--r-- 1 root root 964 Nov 1 18:43 fastcgi_params
-rw-r--r-- 1 root root 964 Nov 1 18:43 fastcgi_params.default
drwx------ 2 nobody root 4096 Nov 2 10:16 fastcgi_temp
drwxr-xr-x 2 root root 4096 Nov 2 11:11 html
-rw-r--r-- 1 root root 2837 Nov 1 18:43 koi-utf
-rw-r--r-- 1 root root 2223 Nov 1 18:43 koi-win
drwxr-xr-x 2 root root 4096 Nov 2 10:16 logs
-rw-r--r-- 1 root root 3463 Nov 1 18:43 mime.types
-rw-r--r-- 1 root root 3463 Nov 1 18:43 mime.types.default
-rwxr-xr-x 1 root root 7177456 Nov 1 18:43 nginx
-rw-r--r-- 1 root root 3937 Nov 13 16:14 nginx.conf
-rw-r--r-- 1 root root 2685 Nov 1 18:43 nginx.conf.default
-rw-r--r-- 1 root root 5 Nov 12 10:02 nginx.pid
drwx------ 12 nobody root 4096 Nov 13 15:29 proxy_temp
-rw-r--r-- 1 root root 596 Nov 1 18:43 scgi_params
-rw-r--r-- 1 root root 596 Nov 1 18:43 scgi_params.default
drwx------ 2 nobody root 4096 Nov 2 10:16 scgi_temp
-rw-r--r-- 1 root root 623 Nov 1 18:43 uwsgi_params
-rw-r--r-- 1 root root 623 Nov 1 18:43 uwsgi_params.default
drwx------ 2 nobody root 4096 Nov 2 10:16 uwsgi_temp
-rw-r--r-- 1 root root 3610 Nov 1 18:43 win-utf

启动

1
2
cd /usr/local/nginx/
./nginx

现在打开浏览器,输入此机器IP即可看到

Welcome To Nginx

安装成功!

将nginx加入可执行程序目录

竟然每次操作nginx都要进入/usr/local/nginx/
好麻烦有木有
没关系 软链接来帮你
/usr/local/bin目录是给用户放置自己的可执行程序的地方,
我们只需在这里建立nginx的软链接即可全局执行nginx

1
ln -s /usr/local/nginx/nginx /usr/local/bin/nginx

大功告成!

设置nginx开机自启动

每次开机我们都要启动nginx,同样巨麻烦,所以可以写一个自启动脚本,使其开机自启动,岂不美滋滋

1
2
cd /etc/rc.d/init.d
vim nginxserver

这是nginx官网上的自启脚本,将这些粘贴进nginxserver

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: NGINX is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -n "$user" ]; then
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
fi
}

start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
configtest || return $?
stop
sleep 1
start
}

reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

configtest() {
$nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
  1. :wq保存退出
  2. 增加脚本的可执行权限

    1
    chmod +x /etc/rc.d/init.d/nginxserver
  3. 添加脚本到开机自动启动项目中

    1
    2
    3
    cd /etc/rc.d/init.d
    chkconfig --add nginxserver
    chkconfig nginxserver on

完事!