一、Nginx是什么
Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。
二、不同版本
nginx常用版本分为四大阵营
- Nginx 开源版:nginx.org
- Nginx plus 商业版:www.nginx.com
- Openresty:openresty.org
- Tengine: tengine.taobao.org
三、玩转的前置准备
- 准备1台centos虚拟机,可以访问外网
- 从官网下载nginx开源版
四、编译安装
我们这里采用下载源码包的形式安装nginx,将下载的压缩包文件上传到到Linux服务器上,解压后进行编译。具体步骤如下所示
1、下载源码包
2、解压文件
执行 tar -xvf nginx-1.25.1.tar.gz 命令解压,解压后的目录是这样的
3、预编译
我们输入 ./configure 命令可以看到我们编译环境缺失什么组件
4、安装组件
从上图我们可以看出当前宿主机是缺失部分组件的,这里我们需要安装C语言编译相关组件
yum install -y gcc
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
安装完成后我们再支持一次./configure 命令,即可看到如下图所示,代表我们所需组件都安装完毕了
5、编译代码
接下来执行make 和 make install 语句
执行完毕后,我们进入/usr/local/nginx/sbin 目录下,执行 ./nginx 即可启动,这时我们开启防火墙的80端口,在浏览器输入虚拟机IP地址就会出现如下页面,代表nginx启动成功!
五、常用命令
nginx相关操作需要进入/usr/local/nginx/sbin 目录下执行
启动命令:./nginx
快速停止:./nginx -s stop
优雅关闭:./nginx -s quit
加载配置:./nginx -s reload
开放端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
六、集成系统服务
使用 vi 或 vim 命令创建nginx.service文件
vi /usr/lib/systemd/system/nginx.service
在该文件中填写如下脚本内容
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载系统服务
systemctl daemon-reload
启动服务
systemctl start nginx.service
开机启动
systemctl enable nginx.service
七、浅谈配置文件
Nginx 默认编译安装后,配置文件都会保存在 /usr/local/nginx/conf 目录下,在配置文件目录下,Nginx 默认的主配置文件是 nginx.conf,这也是 Nginx 唯一的默认配置入口。下面是nginx.conf原文件,我们简单了解一下其中的配置分别是什么意思。
worker_processes 1; # 只启动一个工作进程
events {
worker_connections 1024; # 每个工作进程的最大连接为1024
}
http {
# 可以引入其他路径的配置文件
include mime.types; # 引入MIME类型映射表文件
default_type application/octet-stream; # 全局默认映射类型为application/octet-stream
sendfile on; # 启用零复制机制
keepalive_timeout 65; # 保持连接超时时间为65s
# 虚拟主机
server {
listen 80; # 监听80端口的网络连接请求
server_name localhost; # 虚拟主机名为localhost
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}