当前位置: 首页 > news >正文

一文读懂Nginx应用之 CentOS安装部署Nginx服务

目录

一、Nginx概述

(一)、Nginx安装目录简介

1、conf目录

2、html目录

3、sbin目录

4、log目录

(二)、Nginx配置文件简介

1、配置文件目录结构

2、主配置文件nginx.conf

(1)、main全局模块

(2)、events模块

(3)、http模块

(4)、server模块

(5)、location模块

(6)、upstream模块

(7)、stream模块

二、Nginx安装部署

(一)、环境规划

(二)、安装部署

1、下载Nginx源码包

2、创建Nginx用户

3、编译安装Nginx

(1)、解压Nginx源码包

(2)、编译配置Nginx安装参数

(3)、编译Nginx

(4)、安装Nginx

(三)、启动Nginx应用程序

(四)、常用命令

1、启动Nginx服务

2、停止Nginx服务

3、验证Nginx服务配置文件是否正确

4、热加载配置文件

5、重新打开日志文件

6、显示Nginx服务版本信息及编译配置参数

7、查看Nginx服务命令帮助信息

三、Nginx注册系统服务(可选)

(一)、创建nginx.service文件

(二)、注册Nginx服务并设置开机自动启动Nginx服务

(三)、启动Nginx服务

(四)、关闭Nginx服务

(五)、热加载Nginx服务配置文件


一、Nginx概述

        Nginx是一个高性能的Web服务器软件,不仅提供Web服务器的功能,还实现了诸如访问路由、正向/反向代理、负载均衡、内容缓存、可编程等应用特性,使得Nginx成为互联网上最受欢迎的开源软件之一。

        官方有Nginx开源版本和Nginx Plus商业版本,开源版本是使用最多的版本,商业版本除了具有开源版本的全部功能外,还提供了一些企业级功能。而国内流行的Nginx主要有两个开源版本,一是由淘宝网技术团队维护的分支版本 Tengine 项目;二是由章亦春发起的扩展版本 OpenResty 项目。

        本文及后续系列文章,均使用Nginx官方开源版本。

(一)、Nginx安装目录简介

Nginx默认编译安装后,安装路径为/usr/local/nginx/,下面介绍该路径下几个主要的默认子目录。

1、conf目录

        该目录下保存Nginx服务所有的配置文件,其中nginx.conf是最核心最主要的配置文件,其他.conf后缀的配置文件则是用来配置Nginx相关的功能的。例如配置fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件。每个配置文件一般都有个样例配置文件,以.default结尾,使用时复制并将.default去掉即可。

2、html目录

        该目录下保存Nginx服务的web文件,但是可以更改为其他目录保存web文件。默认有两个web文件50x.html和index.html,50x.html文件是默认的错误提示页面,index.html文件是默认的主页面。

3、sbin目录

该目录下保存Nginx服务的二进制脚本,可以接受不同的参数以实现Nginx服务启动、关闭等功能。

4、log目录

        该目录用来保存Nginx服务的访问日志和错误日志等,访问日志文件为access.log,错误日志文件为error.log。log目录可以根据实际需求配置在其他路径,比如/var/log/nginx里面。

(二)、Nginx配置文件简介

        

        Nginx默认编译安装后,配置文件都会保存在/usr/local/nginx/conf目录下。Nginx默认的主配置文件是nginx.conf,这也是Nginx唯一的默认配置文件入口。

1、配置文件目录结构

/usr/local/nginx/conf配置文件目录结构如下:

其中,以“.default”为扩展名的文件是Nginx配置文件的配置样例文件。

  • nginx.conf:Nginx默认配置文件,也是唯一的配置文件入口。
  • fastcgi_params:Nginx在配置FastCGI代理服务时会根据 fastcgi_params文件的配置向FastCGI服务器传递变量,该配置文件现已由fastcgi.conf代替。
  • fastcgi.conf:为了规范配置指令 SCRIPT_FILENAME的用法,引人FastCGI变量传递配置。
  • mime.types:MIME类型映射表,Nginx会根据服务端文件后缀名在映射关系中获取所属文件类型,将文件类型添加到HTTP消息头字段“Content-Type”中。
  • scgi_params:Nginx在配置SCGI代理服务时会根据scgi_params文件的配置向SCGI服务器传递变量。
  • uwsgi _params:Nginx在配置uWSGI代理服务时会根据uwsgi_params文件的配置向uWSGI服务器传递变量。
  • koi-utf、koi-win、win-utf:这3个文件是KOI8-R编码转换的映射文件,因为Nginx的作者是俄罗斯人,在Unicode流行之前,KOI8-R是使用最为广泛的俄语编码。

2、主配置文件nginx.conf

        Nginx默认的主配置文件是nginx.conf,这也是Nginx唯一的默认配置文件入口。nginx.conf文件主要由不同的功能模块组成,下面将简单介绍其中的核心模块。

nginx.conf配置文件主要结构如下:

(1)、main全局模块

Nginx的根区域,该区域的配置全局有效。nginx.conf的整个文件内容都配置在该区域中。

主要配置项如下:

  • user:用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行。
  • worker_processes:指定Nginx服务要开启的子进程数量,通常数量是CPU内核数量的整数倍。
  • error_log:定义错误日志文件的位置以及日志输出级别(debug/info/notice/warn/error/crit)
  • pid:用来指定Nginx进程id存储文件的位置。

(2)、events模块

        events模块主要是Nginx事件相关的配置,主要影响Nginx服务与用户的网络连接。比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数等。

主要配置项如下:

  • worker_connections:指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker_processes共同决定的。
  • multi_accept:配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接
  • use epoll:配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue

(3)、http模块

        

        http模块是Nginx服务配置最核心的模块,配置项较多,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这里根据实际需求进行配置。http模块可以包含多个server模块,而一个server模块中又可以包含多个location模块。

(4)、server模块

        

        server模块是http模块中的一个子模块,用来配置一个虚拟主机。在server模块中可以定义虚拟主机监听端口、虚拟主机名称、访问日志文件等内容。一个http模块中可以包含多个server模块,即可以定义多个虚拟主机。同时每个server模块中也可以包含多个location模块。

(5)、location模块

        location模块主要用于对用户URI进行访问路由处理的配置。location模块基于Nginx接受到的请求字符串,对用户请求的URI进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存、应答控制、反向代理、负载均衡等功能都是在这部分实现。另外很多第三方模块的配置也是在location模块中配置。location模块是server模块的子模块,一个server模块可以同时定义多个location模块。

http://www.xdnf.cn/news/132067.html

相关文章:

  • 当智驾成标配,车企暗战升级|2025上海车展
  • 告别 “幻觉” 回答:RAG 中知识库与生成模型的 7 种对齐策略
  • CUDA编程之Grid、Block、Thread线程模型
  • 用 ESP32 模拟 Wiegand 刷卡器:开发门禁系统必备的小工具
  • 【CODEMATE】进制转换(transform) 粤港澳青少年信息学创新大赛 C/C++/Python 解题思路
  • WebUI可视化:第2章:技术基础准备
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(11): てあります。
  • 《拆掉思维里的墙》 古典-摘抄
  • k8s(9) — zookeeper集群部署(亲和性、污点与容忍测试)
  • Xmind快捷键大全
  • 【Dify系列教程重置精品版】第1课 相关概念介绍
  • android jatpack Compose 多数据源依赖处理:从状态管理到精准更新的架构设计
  • const(C++)
  • Modbus主从通信功能码与报文格式
  • C++初窥门径
  • 一文读懂 Redis 主从、哨兵、集群模式:工作机制、优缺点全梳理
  • 2025年C/C++基础面试题全解析 | 突破技术盲区,直击大厂核心考点
  • 代码随想录从子序列到编辑距离
  • vue3中nextTick的作用及示例
  • UML 类图基础和类关系辨析
  • 【AI平台】n8n入门2:第一个工作流,调用本地大模型
  • 【C/C++】深入理解指针(五)
  • inline小知识
  • vue3项目中eslint.config.ts配置rules
  • 天机学堂day10作业,完善兑换优惠券功能
  • Python编程的真谛:超越语法,理解编程本质
  • version `GLIBCXX_3.4.32‘ not found 解决方法
  • Linux操作系统从入门到实战(三)Linux基础指令(上)
  • 基于风力推进器控制的小球实验装置设计与研究
  • 推荐一些实用的慢SQL优化方案