Nginx01-安装篇
RHEL/CentOS
Yum安装方式
安装依赖
1 | sudo yum install yum-utils |
1 | sudo yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel |
配置Nginx官方Yum源
创建yum repository文件,/etc/yum.repos.d/nginx.repo,使用vim编辑器插入如下内容
1 | [nginx-stable] |
激活新增的yum源
1 | sudo yum-config-manager --enable nginx-mainline |
1 | Loaded plugins: fastestmirror |
使用yum命令安装nginx
1 | sudo yum install nginx |
1 | Loaded plugins: fastestmirror |
启动Nginx并配置Linux开机自启动
1 | sudo systemctl start nginx.service |
查看Nginx运行状态
1 | sudo systemctl status nginx.service |
1 | ● nginx.service - nginx - high performance web server |
查看Nginx监听状态
1 | sudo netstat -ntlp |
1 | Active Internet connections (only servers) |
Error01
启动nginx时,启动失败,报如下错误
1 | nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1014000 in /usr/share/nginx/modules/mod-http-geoip.conf:1 |
这个原因是因为以前nginx modules 和现在官方的modules 不匹配需要我们先将旧的modules 卸载安装新版官方的modules,使用下面的命令卸载不匹配Modules,重新安装新版Modules
1 | sudo yum remove nginx-mod* |
Nginx官方安装文档链接
Installation on Linux RHEL/CentOS
编译安装
安装依赖
Yum方式安装依赖
1 | sudo yum -y install gcc gcc-c++ |
源码包编译安装依赖
因为有的Nginx版本需要指定特定版本的Pcre、zlib和OpenSSL版本,例如我们的OpenResry 就需要特定的Pcre版本才能实现最新的功能,nginx 需要依赖3个库,分别是:PCRE, zlib and OpenSSL,接下来我们从源码进行安装:
安装Pcre
1
2
3
4
5
6
7
8
9指定安装目录,可随意指定,一般源码包均放置在这个目录
cd /usr/local/src/
PCRE version 8.43
sudo wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && sudo tar xzvf pcre-8.43.tar.gz
cd pcre-8.43
./configure
make
make install
安装zlib
1
2
3
4
5
6zlib version 1.2.11
sudo wget https://www.zlib.net/zlib-1.2.11.tar.gz && sudo tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
安装OpenSSL
下载安装
1
2
3
4
5OpenSSL version openssl-1.0.2t
sudo wget https://www.openssl.org/source/ openssl-1.0.2t.tar.gz && sudo tar xzvf openssl-1.0.2t.tar.gz
cd openssl-1.0.2t/
./config --prefix=/usr/local/openssl-1.0.2t
make && make install检查安装结果
1
2
3
4
5
6
7
8
9cd /usr/local/openssl-1.0.2t/
ldd bin/openssl
linux-vdso.so.1 => (0x00007ffc30ef0000)
libssl.so.1.1 => not found
libcrypto.so.1.1 => not found
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3d29a58000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3d2983c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3d2946f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3d29c5c000)这里执行检查命令后,发现确实两个lib依赖库,可以执行version命令尝试一下是否可以正常使用,如果不能正常使用尝试进行修复
执行version命令检测是否正常
1
2./bin/openssl version
./bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directoryGood,果然不能正常使用,修复呼,只要在依赖库的配置文件中声明咱们OpenSSL的lib库文件位置即可。即,OpenSSL在编译安装时自带了其依赖的库文件,默认系统会到/usr/lib、/usr/lib64下寻找所有的库文件,系统中默认是没有上述两个库的,需要将OpenSSL自带的库加入到系统环境。
修复问题
1
2echo "/usr/local/openssl-1.0.2t/lib/" >> /etc/ld.so.conf
ldconfig -v再次执行vesion命令检测是否正常
1
2./bin/openssl version
OpenSSL 1.0.2t 10 Sep 2019替换原有OpenSSL
1
2
3
4
5
6
7
8openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
which openssl
/usr/bin/openssl
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/local/openssl-1.0.2t/bin/openssl /usr/bin/openssl
openssl version
OpenSSL 1.0.2t 10 Sep 2019
编译安装Nginx
下载安装包
1 | cd /usr/local/src/ |
编译安装
1 | 创建nginx用户 |
编译安装参数
1 | --prefix=/etc/nginx \ |