前一段时间,因为备案被广东管局注销,搞得要重新备一波案。直到前几天正式备案才下来。

很久没有进过这个服务器了,感觉里面的东西也OUT了。

而且之前一直用的都是 CentOS 6.5。准确来说用惯了。

不过,现在也出 CentOS 7了,多了很多新特性,但是一直没时间去试一下。

既然是自己的机器,那当然先拿来试一下水,直接把整个服务器重装。

既然重装了,软件也要跟着重新安装。

这一系列的博文的目的就是介绍 CentOS 7系统下的一些软件的安装啦。供大家参考。

OpenResty 是什么

没有Web服务器,网站是没办法被互联网上的用户访问的。

现在的Web服务器太多了。

*nux 下不少人喜欢用 Apache,因为部署简单、跨平台,新手入门必备。

Windows 系统下有无力吐槽的可视化配置的 IIS。谁用谁知道。

我因为工作需要,需要做非常多的反向代理、中间件,也要兼顾高性能、跨平台。因此用 NGINX 比较多。

NGINX 也是大名鼎鼎的HTTP、反向代理服务器软件。原本是俄罗斯大神 Igor Sysoev 的作品。因为它出色的性能,而且不蛋疼的配置,深受世界各国人民喜爱。

国内淘宝网也发起了 Tengine 项目,根据 NGINX1.8.1 版进行改进,现在用在淘宝、天猫等阿里系的网站上。

现在我准备安装的 OpenResty 则是利用 Lua 脚本集成的 NGINX 的Web平台。

Lua 可以玩很多花样,所以决定就用它了!

下载 OpenResty

赶紧去 OpenResty 的官方网站,进入 Download 页面,找到 Source Code Release(源码发行版),里面的 Lastest release 就是最新的版本啦。

值得一提的是, OpenResty 用的 NGINX 版本都是主线版。讲道理,不是稳定版来的。所以用在生产环境的时候请慎重。

像今天,最新版就是 openresty-1.11.2.2,先把下载地址复制好。

回到我们的服务器,用 wget 或者 curl 下载都可以啦。

1
wget https://openresty.org/download/openresty-1.11.2.2.tar.gz

安装 OpenResty

刚刚我们下载的是 tar.gz 格式的压缩包,所以还得继续解压刚刚下载好的文件。

1
tar -xvf openresty-1.11.2.2.tar.gz

其实这个传参,留下 -xf 就好了。

  • -xextract, 也就是解压;
  • -ffile, 也就是指定操作的文件;
  • -ccreate, 压缩文件的时候有用;
  • -v 只是输出详细信息,你喜欢咯。

解压好了,用 cd openresty-1.11.2.2 进入 OpenResty 的源码目录。

心急的你,可能直接一上来就 ./configure 了。

我只想说,施主莫急。我们还有一些前置工作——提前检查必要的包安装好了没有。

必要的包

GCC

CentOS 7 默认没有安装 gccg++之流的东西。
所以别忘记 yum -y install gcc g++

PCRE

NGINX 默认安装 rewrite 模块(拿来重定向、伪静态的)。
这玩意要用到 PCRE,所以别忘记 yum -y install pcre-devel

Zlib

NGINX 默认安装 gzip 模块(拿来压缩报文的)。
这玩意要用到 zlib,所以别忘记 yum install -y zlib-devel

一股脑的 yum

一股脑的写法就是

1
yum -y install gcc g++ pcre-devel zlib-devel

OpenSSL

等等~ 其实还有一位贵宾——OpenSSL 要上车。
你要支持 SSL 就一定要它!

但是,你都知道啦,OpenSSL 经常出事,所以版本老是要更新,还要是不更不行那种。

所以我们要很自觉地,编译安装最新版的 OpenSSL,以绝后患。

OpenSSL 在哪里下载啊? 戳我去它们官网吧(讲道理,这个网国内访问很慢的)。

看到 Downloads 这几个大字吗?

看到了就自觉往下翻,找到 openssl-1.0.xx.tar.gz 字样的链接。

对的,没错,我们要下载的就是 1.0.xx版本。现在的最新版是 1.0.2j

多年惨痛的经验告诉我,版本号越大就越强啊。

太高版本的话到 NGINX 编译那时也许会出现问题,那就麻烦大咯。

反正如果你要下载 1.0.2j 版,就戳我吧。(现在是2017年1月17日)

注意啦,这个东西你不下载最新版,会有后患的,建议还是直接去官网下最新版啊。

在服务器上面,用 wget 或者 curl -o 下载,不用我再教了吧?

解压到随便一个地方都可以,不用编译。假设解压到了 OpenResty 的源码目录的上一级目录啦。

所以现在的目录就是这样的:

1
2
3
- /root
- /root/openresty-1.11.2.2
- /root/openssl-1.0.2j

准备 configure

回到 OpenResty 的源码目录。下面准备 ./configure,配置一下编译的参数/选项。

但是,不要急着直接输入命令,你还有一些事情要做。

带上 OpenSSL

首先,我们刚刚下载好了 OpenSSL,编译的时候要带上它。

1
./configure --with-openssl=../openssl-1.0.2j

--with-openssl 后面带上 OpenSSL 的源码位置就可以了。

这里我用相对路径的原因是 OpenSSL 的源码 和 OpenResty 的源码目录都在同一个目录(/root/)下,所以大可放心。

如果不放心,可以用绝对路径 ./configure --with-openssl=/root/openssl-1.0.2j

你不知道 OpenSSL 的绝对路径的话,去 OpenSSL 的源码目录,执行 pwd 命令就可以看到了。

带上一些 NGINX 的模块

因为 NGINX 不会默认把全部的模块都编译,所以一些模块需要自己手动添加。

戳我可以看一下 NGINXConfigure 参数大全

很关键,要用 HTTPS 的话,必须把 --with-http_ssl_module 给带上。

其他的模块,就看你需不需要啦。

好比说,你需要 .mp4 视频支持伪流媒体技术,简单说就是可以随便拖动进度条看视频而不是下载完才看。就得加上 --with-http_mp4_module具体模块的文档看这里

需要支持 WebDAV 的话,就加上 --with-http_dav_module具体模块的文档看这里

需要支持 HTTP/2 的话,就加上 --with-http_v2_module具体模块的文档看这里

其他参数

--prefix 其实可以不用管,默认就会编译安装到 /usr/local/openresty/nginx/

--user 的话其实可以不用管。为了避免其它用户操作,我都是在 root 下面编译的,生产环境再单独给其他低权限用户。

--group 的话其实可以不用管。同理。

-j4 很关键,这个是关系到编译处理器并行编译,一定程度上可以提速编译。想快一点就设置成自己的处理器线程数。

合体

假设我们要安装以上这些模块,而且CPU支持四线程,加起来就是:

1
./configure -j4 --with-openssl=/root/openssl-1.0.2j --with-http_ssl_module --with-http_mp4_module --with-http_dav_module --with-http_v2_module

开始 configure

执行上面的命令,让它慢慢 configure 咯。

完了,就会看到下面的东西:

1
2
3
Type the following commands to build and install:
gmake
gmake install

简单来说就是,你要执行 gmake 去编译, gmake install 去安装编译好的东西。

反正就是 configure 完成了。

如果出现 gmake[1]: cc: Command not found ,就是你没装 GCC

如果出现 ./configure: error: the HTTP gzip module requires the zlib library. 之类的话,就是你没装一些必要的库。

反正,有问题的话,十有八九就是你没看我前面说的 必要的包 那一节的东西。

build AND install

很简单,直接用 gmake && gmake install 就可以了。

编译是有可能出错的,遇到错误的话可以 Google 或者 Baidu 一下那个错误信息。

反正装完了,就会看到类似下面的的话:

1
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/local/openresty/bin/openresty

安装后的一些事情

因为就这样装上去,你会发现,nginx 这个命令压根用不了。

没错,我们要先在 /usr/local/ 下做一个软链接到 nginx 的程序上。

1
2
[root@haha openresty-1.11.2.2]# cd /usr/local/bin
[root@haha bin]# ln -s /usr/local/openresty/nginx/sbin/nginx

这样就好啦。运行一下 nginx -v,你就可以看到 nginx 版本上来了。

1
2
[root@haha ~]# nginx -v
nginx version: openresty/1.11.2.2

除了程序要做软链接,配置文件和日志也做一下软链接。

1
2
3
4
[root@haha bin]# cd /etc
[root@haha etc]# ln -s /usr/local/openresty/nginx/conf nginx
[root@haha log]# cd /var/log
[root@haha log]# ln -s /usr/local/openresty/nginx/logs nginx

这样,访问 /etc/nginx 就可以进去 nginx 的配置目录了。访问 /var/log/nginx 就可以进去 nginx 的日志目录了。

启动 NGINX !

很简单啊,直接 nginx启动 了。启动 是不会“说话”的。

重新更新配置 就是 nginx -s reload

关闭服务器 就是 nginx -s stop。当然,粗暴一点就是 killall nginx

设置自启动

因为有的时候,我们的服务器可能会笋干爆炸,重启在所难免。

为了减轻负担,当然要开机自动启动服务器啦。这样就可以尽量减少重启服务器需要的人力。(说白了就是懒

首先,我们要把 nginx 做成一个服务。

先用 Vim 操作一下这个文件:vim /lib/systemd/system/nginx.service

写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]  
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/openresty/nginx/sbin/nginx
ExecReload=/usr/local/openresty/nginx/sbin/nginx -s reload
ExecStop=/usr/local/openresty/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意啦! 如果你改了 OpenResty 里面的位置,请把 /usr/local/openresty/nginx/ 改成你的安装目录位置。

如果你没有搞过骚事,就不用管上面我说的话。

还有这里都要写 绝对路径,不然会有问题的。

保存好了这个文件之后执行一下 systemctl enable nginx.service 就完成自启动设置了。

大成功!

做完了前面全部的事情,你就真真正正的安装好了 OpenResty

这回已经可以访问你的 127.0.0.1 看到 NGINX 的欢迎页面。

当然,如果要外网可以访问,千万不要忘记防火墙开放 80 端口喔。尤其是买了阿里云、腾讯云之类的,一定要设置一下安全组。

下面就是尽情发挥你的小宇宙的时候——写配置。

下一次再说一下这个问题吧~

除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

本文地址:https://blog.micblo.com/2017/01/17/CentOS7%E9%87%8D%E8%A3%85%E4%B9%8B%E8%B7%AF-OpenResty%E5%AE%89%E8%A3%85%E7%AF%87/