今天又因为安全检查要求升级nginx,兼职运维的后台小伙搜索了一篇文章问我行不行。
这里,给所有搜索nginx升级、linux安装nginx等内容的小伙伴提个醒。
如果你不是很专业的运维,同时有很重要的要求需要源码安装,例如公司有特殊模块要求或者公司要求源码编译以追求最优效果等,这个时候,如果你搜到文章让你下各种以tar.gz为后缀的包时,请直接忽略
这些几乎都是从源码编译安装的介绍文章,但是,请不要在不熟悉的情况下使用源码安装,这是因为:
- 你可能会遇到很多错误,以及很多源码编译依赖,从而进一步又遭遇需要下载多种依赖库的情况
- 你可能会把配置目录、安装目录等配置为非系统默认路径,导致其他小伙伴无法准确找到配置的地点
- 你可能会因此用到错误的启动方案,而不是系统默认的service启动方案
总之,源码编译确实显得厉害,而且性能可以做到最优,但是会给团队协作带来很多困难。请从系统软件仓库中直接使用apt、rpm等软件管理工具下载预编译好的版本
如果你的服务器在私网环境,请参考以下的手工下载nginx流程(以centos 7下nginx安装为例,其他centos请搜索软件名+rpm,debian系列请搜索apt安装)
nginx有官方的rpm库下载地址:
下载对应版本的以el7.ngx.x86_64.rpm结尾的文件安装即可,其中el7指代centos7(基本相同,其中区别和背景小故事可以自行搜索),其他版本可以选择自己版本对应的rpm包,后面的x86_64指系统的硬件架构是64位x86系统,arm等其他系统需要选择对应自己的。
如果有依赖问题,使用以下网址进行搜索
比如安装nginx遇到如下问题:
在Failed dependencies下面所跟的就是缺失的包,那我们搜索is之前的libpcre2-8.so.0()(64bit)
出现页面如下,我们进一步在Filter里面按以下配置选择:
Distributions里面Deselect all,然后只选择centos 7,剩余两个选项按图配置,应该默认无需改动
重新过滤后,显示如下
优先选x86_64(自己架构对应的)的,如果有official的,优先选offical的。
安装方法
下载后,使用rpm -i 进行安装,需要详细信息可以用rpm -ivh,类似
rpm -i nginx.rpm
如果出现类似下面的错误(特征是中间有很多file aaa conflicts with file from bbb)
如果其中的bbb只是和你要安装的软件名称一样,但是版本号要小一点,则使用下面的命令再安装一次
rpm -i --force nginx.rpm
解决缺失模块,无法启动的问题
如果之前安装过nginx其他模块,可能会出现类似下面的错误
在启动的时候,因为ngx_http_image_filter_module缺失导致启动不了,这时,我们还用最开始的nginx centos仓库下载对应的模块单独的rpm包安装即可