一、nginx初始安装
1)首先确保机器安装了gcc g++
查看是否安装gcc g++
which gcc g++
gcc -v
g++ -v
没有可执行:yum -y install gcc gcc-c++ 或 yum groupinstall "Development Tools" 手动安装依次下载安装软件包的安装顺序是m4 --> gmp --> mpfr --> mpc --> gcc
2)下载最新的nginx及依赖包pcre、zlib、openssl放到/usr/local/src下。
注意pcre,openssl不要太新,否则后面的configure及make都可能报错;如pcre2,openssl3目前不支持最新的nginx1.18
目前下载包为nginx-1.18.0.tar.gz、openssl-1.0.2p.tar.gz、pcre-8.44.tar.gz、zlib-1.2.11.tar.gz。
pcre(支持rewrite),zlib(支持gzip模块)和openssl(支持ssl模块)
3)命令tar -zxvf 解压以上4个包在/usr/local/src下 进入nginx-1.18.0目录。注意三个依赖包可不make&&make install。
执行./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.44/ --with-zlib=../zlib-1.2.11/ --with-openssl=../openssl-1.0.2p --with-ipv6 --with-poll_module --with-http_stub_status_module --with-http_ssl_module
成功后执行make && make install 会安装到/usr/local/nginx目录下。
以上为常规安装,需要加载的模块可以通过./configure --help查看。模块分二类,一类为nginx自带,一类为第三方,第三方的需要下载重新编译
三方模块下载地址:https://www.nginx.com/resources/wiki/modules/
如下载了lua-nginx-module-0.10.19.tar.gz放到跟nginx-1.18.0.tar.gz同级目录解压tar -zxvf lua-nginx-module-0.10.19.tar
如下载了nginx-http-concat-master.zip放到跟nginx-1.18.0.tar.gz同级目录下解压unzip nginx-http-concat-master.zip
在nginx-1.18.0目录下执行./configure 时候加上--add-module=/第三方模块目录 如 ./configure 之前的脚本追加--add-module=lua-nginx-module-0.10.19 --add-module=../nginx-http-concat-master/便可。
二、nginx升级安装
1)升级安装注意必须gcc版本一致,否则会出现执行报错;故最好在源机器上进行编译。编译时候相关依赖包不一定必须之前的版本,可以是新版本,只是需要注意编译时路径正确,编译时候也可以不用带上--prefix=/usr/local/nginx。
2)A机器上编译nginx的gcc版本必须比B机器上gcc版本低才能copy过去在B机器上运行。
3)编译./configure追加新模块后make,不要再make install。在/usr/local/src/nginx-1.18.0/objs下nginx复制到生产目录便可。
./nginx -V 查看。
三、其它说明
1)查看是否安装pcre
rpm -qa pcre
rpm -ql pcre
pcre-config --version 没有该命令是没有安装pcre-devel
2)查看是否安装zlib
find /usr/ -name zlib.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/zlib.pc
cat /usr/lib/x86_64-linux-gnu/pkgconfig/zlib.pc
3)查看是否安装openssl
openssl version -a
4)快速安装依赖包:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
快速安装所有依赖包:yum -y install vim lrzsz tree screen psmisc lsof tcpdump wget ntpdate gcc gcc-c++ glibc glibc-devel pcre 5)pcre-devel openssl openssl-devel systemd-devel net-tools iotop bc zip unzip zlib-devel bash-completion nfs-utils automake libxml2 libxml2-devel libxslt libxslt-devel perl perl-ExtUtils-Embednginx安装及升级
原文:https://blog.51cto.com/lysweb/2561381