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
端口喔。尤其是买了阿里云、腾讯云之类的,一定要设置一下安全组。
下面就是尽情发挥你的小宇宙的时候——写配置。
下一次再说一下这个问题吧~
除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。