安装环境
-
Linux操作系统:CentOS 7.9
-
nginx版本:1.20.2
安装步骤:
1、安装GCC、automake、pcre、zlib和openssl
- GCC:GCC编译器,用于编译nginx源码
- automake:用于自动创建Makefile
- 第三方库:用于支持nginx的一些模块。通常有pcre库(支持rewrite模块)、zlib库(支持gzip模块)和openssl库(支持ssl模块)。
- 运行如下指令去查看Linux服务器上是否已经安装GCC、automake、pcre、zlib和openssl
# 查看Linux服务器上是否已经安装GCC、automake、pcre、zlib和openssl
gcc -v
automake
rpm -qa pcre
rpm -qa zlib
rpm -qa openssl
- 若未全部安装以上几个库,执行以下代码可以一次到位(安装了的也可以运行更新一下):
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel
2、下载nginx(不必追新,稳定版即可)
- 方式一,nginx官网下载:http://nginx.org/en/download.html
- 方式二,运行以下命令下载
wget http://nginx.org/download/nginx-1.20.2.tar.gz
# 如果wget工具没下载,运行以下命令安装
yum -y install wget
3、解压
tar -xvf nginx-1.20.2.tar.gz
# 解压后的目录解释
auto:该目录存放了大量脚本文件,和configure脚本程序有关。
conf:该目录存放了nginx服务器的配置文件,包含了nginx服务器的基本配置文件和对部分特性的配置文件。
configure:nginx服务器的自动脚本程序,运行configure自动脚本将会完成两项工作:
1、检查环境,根据环境检查结果生成C代码;
2、生成编译代码需要的makefile文件。
html:该目录存放了两个静态文件:50x.html、index.html。
man:该目录存放了nginx服务器的帮助文档,可通过man nginx进行查看。
src:该目录存放了nginx服务器的所有源代码。
4、安装nginx服务器
- 注:此步骤在运行./configure时可能不成功,不成功的原因基本在于第一步的库未安装成功,可以重新进行安装
# 在etc文件夹下创建新文件夹nginx(个人习惯安装于/etc/nginx/)
cd /etc
mkdir nginx
# 进入之前解压后得到的文件夹nginx-1.20.2,运行configure脚本程序
# 可以直接运行./configure,也可以通过--prefix=path指定nginx的安装目录
./configure --prefix=/etc/nginx
# 若运行报错,原因基本在于第一步的库未安装成功,可以重新运行以下命令;不报错则跳过此步骤
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 运行完成后,当前文件夹下多出一个文件Makefile,执行make指令进行源代码编译
make
# 编译完成后,执行make install命令安装nginx服务器
make install
# 定位到安装目录
cd /etc/nginx
# 目录解释
conf:该目录存放了nginx的所有配置文件,该文件夹下包含主配置文件nginx.conf,其他文件则是用来配置nginx的相关功能。
html:该目录存放了nginx服务器在运行过程中调用的一些html文件。
logs:该目录存放了nginx服务器的日志。
sbin:该目录中只包含了一个文件nginx,它就是nginx服务器的主程序。
5、启动nginx服务器
# 进入sbin
cd /etc/nginx/sbin
# 启动服务器之前,可以通过如下指令来查看nginx配置文件是否有语法错误
./nginx -t
# 使用默认配置启动nginx
./nginx
# 查看nginx进程状态
ps -ef|grep nginx
# 停止nginx服务器
./nginx -s stop
# 重启nginx服务器
./nginx -s reopen
# 重新载入配置文件
./nginx -s reload
# 通过如下指令可以查看nginx服务器版本
./nginx -v
6、访问服务器地址(ip:port)
- 页面无法访问,原因之一是被服务器的安全策略限制了(例如:防火墙)
- 由于我这里使用的是默认的80端口,所以给防火墙配置80端口
# 防火墙配置80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启防火墙
systemctl restart firewalld
# 查看防火墙状态
systemctl status firewalld
- 能打开这个页面就说明成功啦~~