目录
- 1. Nginx下载
- 2. 系统准备
- 3. Nginx安装
- 3.1 安装方式
- 3.2 依赖准备
- 1)GCC编译器
- 2)PCRE
- 3)zlib
- 4)OpenSSL
- 3.3 源码下载
- 3.4 解压编译
- 3.5 Nginx目录结构
- 3.6 配置环境变量
- 4. Nginx基本命令
- 4.1 检查配置文件的正确性
- 4.2 查看Nginx配置文件
- 4.3 启动Nginx服务
- 4.4 停止Nginx服务
- 4.5 重新加载配置文件
1. Nginx下载
-
Nginx 官网:https://nginx.org
-
Nginx官方源码下载地址:https://nginx.org/download
-
打开官网并在右侧栏点击【download】。
-
笔者是将 Nginx 部署到 Linux 服务器上,我们选取最新的稳定版 1.22.1 下载:
2. 系统准备
(1) 确认centos的内核
-
准备一个内核为 2.6 及以上版本的 CentOS 操作系统,因为 linux 2.6 及以上内核才支持 epoll,而 Nginx 需要解决高并发压力问题是需要用到epoll,所以我们需要有这样的版本要求。
-
我们可以使用
uname -a
命令来查询 linux 的内核版本。
(2) 确保 CentOS 能联网
ping www.baidu.com
(3) 确认关闭防火墙
- 这一项的要求仅针对于那些对 Linux 系统的防火墙设置规则不太清楚的。嫌麻烦的可以把防火墙都关闭掉,因为我们此次课程主要的内容是对 Nginx 的学习,把防火墙关闭掉,可以省掉后续 Nginx 学习过程中遇到的诸多问题。
(4) 确认停用selinux
-
selinux (security-enhanced linux),美国安全局对于强制访问控制的实现,在 linux 2.6 内核以后的版本中,selinux 已经成功内核中的一部分。可以说 selinux 是 linux 史上最杰出的新安全子系统之一。虽然有了selinux,我们的系统会更安全,但是对于我们的学习 Nginx 的历程中,会多很多设置,所以这块建议大家将 selinux 进行关闭。
-
sestatus 查看状态:
sestatus
-
如果查看不是 disabled 状态,我们可以通过修改配置文件来进行设置,修改
SELINUX=disabled
,然后重启下系统即可生效。
vim /etc/selinux/config
3. Nginx安装
3.1 安装方式
- Nginx 的安装方式有两种分别是:
- 通过Nginx源码
通过Nginx源码简单安装 (1)
通过Nginx源码复杂安装 (3) - 通过yum安装 (2)
- 通过Nginx源码
3.2 依赖准备
-
如果通过 Nginx 源码安装需要提前准备的内容:
1)GCC编译器
-
Nginx 是使用 C 语言编写的程序,因此想要运行 Nginx 就需要安装一个编译工具。GCC 就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了 C 语言。
-
使用下面命令来安装:
yum install -y gcc
-
安装成功后,可以通过
gcc --version
来查看 GCC 是否安装成功。
2)PCRE
-
Nginx 在编译过程中需要使用到 PCRE 库(Perl Compatible Regular Expressoin 兼容正则表达式库),因为在 Nginx 的 Rewrite 模块和 http 核心模块都会使用到 PCRE 正则表达式语法。
-
可以使用下面命令来进行安装:
yum install -y pcre pcre-devel
-
安装成功后,可以通过
rpm -qa pcre pcre-devel
来查看是否安装成功
3)zlib
-
zlib 库提供了开发人员的压缩算法,在 Nginx 的各个模块中需要使用 gzip 压缩,所以我们也需要提前安装其库及源代码 zlib 和 zlib-devel 。
-
可以使用下面命令来进行安装:
yum install -y zlib zlib-devel
-
安装成功后,可以通过
rpm -qa zlib zlib-devel
来查看是否安装成功。
4)OpenSSL
-
OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。
-
SSL:Secure Sockets Layer,安全套接协议的缩写,可以在 Internet 上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。在 Nginx 中,如果服务器需要提供安全网页时就需要用到 OpenSSL 库,所以我们需要对 OpenSSL 的库文件及它的开发安装包进行一个安装。
-
可以使用下面命令来进行安装:
yum install -y openssl openssl-devel
-
安装成功后,可以通过
rpm -qa openssl openssl-devel
来查看是否安装成功。 -
上述命令,一个个来的话比较麻烦,我们也可以通过一条命令来进行全部安装:
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
3.3 源码下载
-
选择最新稳定版,复制链接:
-
到 Linux 命令行上使用
wget
命令进行下载:wget https://nginx.org/download/nginx-1.22.1.tar.gz
-
可以看到是下载到
pwd
当前工作目录/root
的:
3.4 解压编译
-
创建一个文件夹专门存放 Nginx 的源码压缩包:
mkdir -p nginx/core mv nginx-1.22.1.tar.gz nginx/core
-
进入 Nginx 目录下:
cd nginx/core
-
解压:
tar -zxvf nginx-1.22.1.tar.gz
-
进入解压出来的文件夹:
cd nginx-1.22.1
-
创建 Nginx 的安装路径:
mkdir -p /usr/local/nginx
-
使用
configure
指定安装路径到/usr/local/nginx
:./configure --prefix=/usr/local/nginx
-
然后执行编译和安装:
make && make install
-
安装好之后有 4 个目录:
3.5 Nginx目录结构
-
我们来熟悉一下 Nginx 的目录结构:
-
conf:存放配置文件。我们要操作的最核心的就是
nginx.conf
。 -
html:存放静态文件。如 HTML 页面、CSS 样式文件、JS 文件等。
-
logs:存放日志文件。
-
sbin:存放 Nginx 的脚本文件,用于启动 / 停止 Nginx 服务。
3.6 配置环境变量
-
打开 Linux 系统的环境变量文件:
vim /etc/profile
-
在
PATH
这一行加上:PATH=/usr/local/nginx/sbin:
按
:wq
保存退出。 -
重新加载环境变量文件:
source /etc/profile
-
测试:查看 Nginx 的版本号:
nginx -v
如果能正确显示版本号则说明 Nginx 安装成功且环境变量生效。
4. Nginx基本命令
4.1 检查配置文件的正确性
-
在启动 Nginx 服务之前,可以先检查一下
conf/nginx.conf
文件配置是否有错误。命令如下:nginx -t
如果返回的结果为
ok
和successful
,则说明配置文件nginx.conf
没有错误,可以启动 Nginx 服务。
4.2 查看Nginx配置文件
-
打开 Nginx 的配置文件:
vim /usr/local/nginx/conf/nginx.conf
-
我们要开放 80 端口的防火墙:
firewall-cmd --zone=public --add-port=80/tcp --permanent
-
让防火墙开放立即生效:
firewall-cmd --reload
-
查看已经开放的端口:
firewall-cmd --zone=public --list-ports
4.3 启动Nginx服务
-
输入下面命令启动 Nginx 服务:
nginx
-
Nginx 是在后台运行的,可以查看是否有 Nginx 相关的进程:
ps -ef | grep nginx
可以看到有 1 个 master 进程和 1 个 worker 进程,说明 Nginx 服务已经成功运行了。
-
我们可以打开浏览器,地址栏输入 server100 这台主机的 IP 地址:
http://192.168.148.100:80
能成功访问,说明 Nginx 服务已经启动成功了。
-
启动完成后,Nginx 的目录结构发生了变化:
-
以下划线
_temp
结尾的临时目录,都不用关注。 -
重点看
logs
日志目录,产生了 2 个文件:-
access.log
记录的是访问日志。 -
error.log
记录的是错误日志。
-
4.4 停止Nginx服务
-
输入下面命令停止 Nginx 服务:
nginx -s stop
-
查看进程看还有没有 Nginx :
ps -ef | grep nginx
已经没有 master 进程和 worker 进程,说明 Nginx 服务已经停止运行了。
4.5 重新加载配置文件
-
当修改 Nginx 配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:
nginx -s reload
-
举例,修改配置文件,使得 worker 进程数为 2 :
vim /usr/local/nginx/conf/nginx.conf
按
:wq
保存退出。 -
重新加载配置文件:
nginx -s reload
-
查看 Nginx 进程:
ps -ef | grep nginx
可以看到 2 个 worker 进程。