CentOS7重装之路 - OpenResty安装篇
前一段时间,因为备案被广东管局注销,搞得要重新备一波案。直到前几天正式备案才下来。
很久没有进过这个服务器了,感觉里面的东西也OUT了。
而且之前一直用的都是 CentOS 6.5。准确来说用惯了。
不过,现在也出 CentOS 7了,多了很多新特性,但是一直没时间去试一下。
既然是自己的机器,那当然先拿来试一下水,直接把整个服务器重装。
既然重装了,软件也要跟着重新安装。
这一系列的博文的目的就是介绍 CentOS 7系统下的一些软件的安装啦。供大家参考。
OpenResty 是什么
没有Web服务器,网站是没办法被互联网上的用户访问的。
现在的Web服务器太多了。
*nux 下不少人喜欢用 Apache,因为部署简单、跨平台,新手入门必备。
Windows 系统下有无力吐槽的可视化配置的 IIS。谁用谁知道。
我因为工作需要,需要做非常多的反向代理、中间件,也要兼顾高性能、跨平台。因此用 NGINX 比较多。
NGINX 也是大名鼎鼎的HTTP、反向代理服务器软件。原本是俄罗斯大神 Igor Sysoev 的作品。因为它出色的性能,而且不蛋疼的配置,深受世界各国人民喜爱。
国内淘宝网也发起了 Tengine 项目,根据 NGINX 的 1.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 就好了。
-x是extract, 也就是解压;-f是file, 也就是指定操作的文件;-c是create, 压缩文件的时候有用;-v只是输出详细信息,你喜欢咯。
解压好了,用 cd openresty-1.11.2.2 进入 OpenResty 的源码目录。
心急的你,可能直接一上来就 ./configure 了。
我只想说,施主莫急。我们还有一些前置工作——提前检查必要的包安装好了没有。
必要的包
GCC
CentOS 7 默认没有安装 gcc、g++之流的东西。
所以别忘记 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 | - /root |
准备 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 不会默认把全部的模块都编译,所以一些模块需要自己手动添加。
戳我可以看一下 NGINX 的 Configure 参数大全。
很关键,要用 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 | Type the following commands to build and 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 | [root@haha openresty-1.11.2.2]# cd /usr/local/bin |
这样就好啦。运行一下 nginx -v,你就可以看到 nginx 版本上来了。
1 | [root@haha ~]# nginx -v |
除了程序要做软链接,配置文件和日志也做一下软链接。
1 | [root@haha bin]# cd /etc |
这样,访问 /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 | [Unit] |
注意啦! 如果你改了 OpenResty 里面的位置,请把 /usr/local/openresty/nginx/ 改成你的安装目录位置。
如果你没有搞过骚事,就不用管上面我说的话。
还有这里都要写 绝对路径,不然会有问题的。
保存好了这个文件之后执行一下 systemctl enable nginx.service 就完成自启动设置了。
大成功!
做完了前面全部的事情,你就真真正正的安装好了 OpenResty。
这回已经可以访问你的 127.0.0.1 看到 NGINX 的欢迎页面。
当然,如果要外网可以访问,千万不要忘记防火墙开放 80 端口喔。尤其是买了阿里云、腾讯云之类的,一定要设置一下安全组。
下面就是尽情发挥你的小宇宙的时候——写配置。
下一次再说一下这个问题吧~
除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。