一、下载nginx
下载地址:https://nginx.org/en/download.html
二、外部依赖检查和安装
依赖一共有以下几种类型:gcc、pcre、zlib、opnessl
2.1 gcc检查
gcc -v
出现如下,说明gcc是安装了的
如果最后一行没有出现对应gcc版本信息,那就要去手动下载了 ,下面的部分是下载安装各种依赖
提供个阿里云镜像地址:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
gcc 清单
cpp-4.8.5-44.el7.x86_64.rpm
gcc-4.8.5-44.el7.x86_64.rpm
glibc-devel-2.17-317.el7.x86_64.rpm
glibc-headers-2.17-317.el7.x86_64.rpm
kernel-headers-3.10.0-1160.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
mpfr-3.1.1-4.el7.x86_64.rpm
一个个找到下载,小技巧:可以直接复制名字定位,ctrl+f
把下载好的gcc依赖统一上传到服务器的同一个文件夹下,或者可以通过文章顶部的资源下载相应的文件包,相关类型已经放在同一个目录下,上传成功之后对压缩文件进行解压,进入解压后的目录,然后执行下列命令安装gcc
rpm -Uvh *.rpm --nodeps --force
2.2 PCRE检查
为什么要这个库?因为nginx是使用C语言开发的,为了实现高性能,用到了这个库
检测安装命令:
rpm -qa | grep pcre
通过此命令可以发现我这台服务器上面已经安装好了pcre依赖
如果没有出现这些信息说明没有安装,需要自行下载
下载地址:https://www.pcre.org/
按照下图中箭头的地址进行下载,因为是外网,可能无法访问,需要翻墙才能进行访问,如果无法翻墙可以通过文章顶部的资源进行下载
下载下来后上传到linux服务器某个文件夹下
执行解压命令
tar -zxvf pcre2-10.44.tar.gz
cd进入解压后的目录下依次执行
./configure (后面可加 --prefix=安装目录,安装到指定路径,一般不加,就安装到默认路径下)
make
make install
2.3 zlib检查
检测安装命令:
rpm -qa | grep zlib
我这里通过命令查看到时已经安装了zlib
没有如上信息,要下载安装
地址:https://www.zlib.net/
往下划 ,找到下图中圈出来的部分进行下载
下载好后上传到服务器某文件夹下
执行解压命令
tar -zxvf zlib.tar.gz
再cd 到解压后的zlib目录顺序执行
./configure (后面可加 --prefix=安装目录,安装到指定路径,一般不加,就安装到默认路径下)
make
make install
2.4 openssl检查
检测安装命令:
openssl version
我这里通过命令查看到时已经安装了openssl
如果你哪里没有显示已安装,那么建议去下面这个地址进行下载
https://openssl-library.org/source/
下载好后上传到服务器某文件夹下
执行解压命令
tar -zxvf openssl-3.3.1.tar.gz
再cd 到解压后的openssl目录顺序执行
./configure (后面可加 --prefix=安装目录,安装到指定路径,一般不加,就安装到默认路径下)
make
make install
三、安装nginx
上传下载后的nginx到自己新建的目录,如下图:
依次执行这些命令:
cd /data/nginx 进入上传nginx文件的目录
tar -zxvf nginx-1.27.0.tar.gz 对上次的nginx文件进行解压
cd nginx-1.27.0 进入解压后的文件目录
进入解压后的文件夹下执行如下,这里配置安装到/usr/local下
./configure (--prefix=/usr/local/nginx,这是指定安装到某个路径下,如果不指定,则默认也是安装到这个路径下,没有nginx文件夹会自动创建)
make
make install
我这里执行完第一句报错了,我重新安装下PCRE库(按照上述pcre流程来)
安装好后再进入nginx的解压目录
继续执行上面的nginx安装
./configure (--prefix=/usr/local/nginx,这是指定安装到某个路径下,如果不指定,则默认也是安装到这个路径下,没有nginx文件夹会自动创建)
make
make install
如果还是报错,仔细观察报错是否是zlib错误,如果是,参考zlib的安装步骤重新安装之后继续执行nginx的安装命令
正常情况下,上面三个命令执行完成之后nginx的安装基本完成
四、启动nginx
进入nginx的启动目录,因为没有设置nginx的安装目录,所以默认安装在/usr/local/nginx
cd /usr/local/nginx/sbin/
./nginx
nginx启动成功之后可以通过以下命令进行查询
ps -ef|grep nginx
启动成功之后显示如下:
nginx的默认监听端口是80,所以访问本机加上80端口查看nginx,如下图正常访问
因为我这里关闭了防火墙,如果你的服务器没有关闭防火墙需要对80端口进行放行,不然无法访问,这里就不详细介绍防火墙端口开放的内容
五、设置nginx开机自启
这里采用Systemd方式,把nginx作为系统服务,设置开机自启动
首先执行以下命令
vi /etc/systemd/system/nginx.service
创建一个nginx系统服务文件,按 i 键并输入以下内容,esc键退出,:wq保存
注意 /usr/local/nginx要替换成自己的nginx的安装路径(不是解压路径)
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
nginx -s quit # 这种方法较stop相比就比较温和,需要进程完成当前工作后再停止。
nginx -s stop # 立即停止服务 这种方法比较强硬,无论进程是否在工作,都直接停止进程
先把之前的服务进程杀掉
刷新配置
sudo systemctl daemon-reload
允许nginx自启动
sudo systemctl enable nginx.service
启动nginx
sudo systemctl start nginx.service
查看nginx服务的状态
sudo systemctl status nginx.service
查看开机自启动的服务列表
systemctl list-units --type=service
停止nginx服务
sudo systemctl stop nginx.service
最后可以通过reboot重启验证nginx是否开机自启动,我服务器上面涉及的服务较多,就不做演示