应该有不少小伙伴安装nginx使用下面命令安装的吧?
yum install epel-release
yum install nginx
2021年4月22日这个时间点,上面的方法安装的nginx版本是1.16.1
版本相对比较旧,那么CentOS7中如何安装比较新的版本呢?
升级与安装新nginx一样。 安装方法参照: https://nginx.org/en/linux_packages.html
安装先决条件:
sudo yum install yum-utils
要设置yum存储库,请创建/etc/yum.repos.d/nginx.repo
包含以下内容的文件 :
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
默认情况下,使用稳定的nginx软件包的存储库。如果要使用主线nginx软件包,请运行以下命令:
sudo yum-config-manager --enable nginx-mainline
新安装nginx或者升级nginx运行下面命令:
sudo yum install nginx
当提示您接受GPG密钥时,请验证指纹是否匹配 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
,如果是,则接受它。
我的运行日志如下:
是否继续?[y/N]:y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : 1:nginx-1.20.0-1.el7.ngx.x86_64 1/2
清理 : 1:nginx-1.16.1-3.el7.x86_64 2/2
验证中 : 1:nginx-1.20.0-1.el7.ngx.x86_64 1/2
验证中 : 1:nginx-1.16.1-3.el7.x86_64 2/2
更新完毕:
nginx.x86_64 1:1.20.0-1.el7.ngx
完毕!
现在检查一下nginx的版本
[root@localhost ~]# nginx -v
nginx version: nginx/1.20.0
防火墙开80端口
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/tcp --permanent
启动服务
# 启动服务
systemctl start nginx.service
# 设置为开机启动
systemctl enable nginx.service
升级心得
如果服务器以前安装了旧版本的nginx,升级完成以后如果不restart服务,其实当前运行的依然是老版本ngginx。
# 重启服务不能忘记
systemctl restart nginx
正常情况下直接重启就搞定了,但是我也遇到过重启报错的。
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
如果遇到这个错,解决办法参考: https://nopistash.wordpress.com/2018/05/03/centos7-nginx-conflicting-module-versions/
还有报错是80端口被占用的,假如是老的nginx服务占用了就关闭老的nginx进程就行了。
#杀死所有nginx进程
pkill -f nginx
参照文档
https://nginx.org/en/linux_packages.html