Nginx入门之安装

159 阅读3分钟

一、Nginx是什么

Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。

二、不同版本

nginx常用版本分为四大阵营

三、玩转的前置准备

  • 准备1台centos虚拟机,可以访问外网
  • 从官网下载nginx开源版

四、编译安装

我们这里采用下载源码包的形式安装nginx,将下载的压缩包文件上传到到Linux服务器上,解压后进行编译。具体步骤如下所示

1、下载源码包

image.png

2、解压文件

执行 tar -xvf nginx-1.25.1.tar.gz 命令解压,解压后的目录是这样的

image.png

3、预编译

我们输入 ./configure 命令可以看到我们编译环境缺失什么组件

image.png

4、安装组件

从上图我们可以看出当前宿主机是缺失部分组件的,这里我们需要安装C语言编译相关组件

yum install -y gcc
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

安装完成后我们再支持一次./configure 命令,即可看到如下图所示,代表我们所需组件都安装完毕了

image.png

5、编译代码

接下来执行make 和 make install 语句

image.png

image.png

执行完毕后,我们进入/usr/local/nginx/sbin 目录下,执行 ./nginx 即可启动,这时我们开启防火墙的80端口,在浏览器输入虚拟机IP地址就会出现如下页面,代表nginx启动成功!

image.png

五、常用命令

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;
        }
    }
}