centos7.7离线安装nginx
一、1、安装openssl,因为编译安装nginx需要指定openssl目录
mkdir /data/openssl -p cd /data/openssl wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
2、解压并编译安装openssl
tar xf openssl-1.1.1d.tar.gz cd openssl-1.1.1d ./config --prefix=/usr/local/openssl --openssldir=/usr/local/ssl make -j 2 make install
3、导出库文件
echo /usr/local/openssl/lib >> /etc/ld.so.conf.d/openssl.conf ldconfig 检测版本信息 /usr/local/openssl/bin/openssl version -a OpenSSL 1.1.1d 10 Sep 2019 built on: Mon Dec 9 08:39:59 2019 UTC platform: linux-x86_64 options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG OPENSSLDIR: "/usr/local/ssl" ENGINESDIR: "/usr/local/openssl/lib/engines-1.1" Seeding source: os-specific
4、导出openssl/bin 到PATH 变量
echo 'PATH=/usr/local/openssl/bin:$PATH' >> /etc/profile.d/env.sh source /etc/profile.d/env.sh openssl version OpenSSL 1.1.1d 10 Sep 2019
5、安装nginx所需的依赖
yum -y install gcc gcc-c++ yum -y install zlib zlib-devel openssl openssl-devel pcre-devel gzip 模块需要 zlib 库 rewrite 模块需要 pcre 库 ssl 功能需要openssl库
6、下载nginx安装包
wget http://nginx.org/download/nginx-1.16.1.tar.gz tar xf nginx-1.16.1.tar.gz cd nginx-1.16.1
7、添加nginx组,用户
groupadd nginx useradd nginx -g nginx -s /sbin/nologin -M
8、先修改nginx源码包以下文件,否则在执行初始化配置时会提示“.openssl”相关错误
vim /data/nginx-1.16.1/auto/lib/openssl/conf 删除/.openssl CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include" CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a" 更改为以下内容: CORE_INCS="$CORE_INCS $OPENSSL/include" CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h" CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a" CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
9、 初始化配置信息
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_realip_module --with-http_gzip_static_module --with-openssl=/usr/local/openssl
10、查看是否配置成功($? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误)
echo $? 0
11、编译安装
make && make install echo $?
12、查看nginx版本号
/usr/local/nginx/sbin/nginx -v nginx version: nginx/1.16.1
13、检查配置文件语法是否正确
/usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
14、启动nginx
/usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx -s reload 重新载入配置文件 /usr/local/nginx/sbin/nginx -s stop 快速关闭 Nginx /usr/local/nginx/sbin/nginx -s quit 关闭Nginx
15、编写启动脚本,方便开机自启
vim /usr/lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPost=/bin/sleep 0.1 ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
使用:
systemctl start|stop|reload|restart|status nginx.service 开机自启: systemctl enable nginx.service 关闭开机自启: systemctl disable nginx.service
openssl安装参考:https://blog.51cto.com/1012682/2380553?source=dra
nginx安装参考:https://blog.csdn.net/yuanfangPOET/article/details/90045001