【Nginx01】Ngnix入门

news2024/11/15 10:52:21

1.版本

  1. Nginx开源版
  2. Nginx plus商业版
  3. Openresty
  4. Tengine

2.Nginx开源版安装

2.1下载

在这里插入图片描述

2.2编译安装

如果本身没有c语言的编译器

命令: yum install -y gcc

解压Nginx

命令: tar -zxvf nginx-1.22.1.tar.gz

在这里插入图片描述
安装perl库

命令: yum install -y pcre pcre-devel

安装zlib库

命令: yum install -y zlib zlib-devel

进入nginx文件夹,用configure脚本来安装

命令: ./configure --prefix=/usr/local/nginx

在这里插入图片描述

命令: make

在这里插入图片描述

命令: make install

在这里插入图片描述
查看是否在刚才所述的路径下/usr/local/nginx

在这里插入图片描述

2.3启动Nginx

首先进入sbin目录

命令1: ./nginx(后台启动)
命令2: ./nginx -s stop 快速停止
命令3: ./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
命令4: ./nginx -s reload 重新加载配置

在这里插入图片描述

关闭防火墙

命令: systemctl stop firewalld

访问nginx
在这里插入图片描述

禁止防火墙开机自启

命令: systemctl disable firewalld

2.4安装成系统服务,即开机自启

1.创建服务脚本

命令: 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

在这里插入图片描述
关闭nginx

命令: ./nginx -s stop

在这里插入图片描述
使用脚本启动nginx

命令: systemctl start nginx

在这里插入图片描述
开机启动命令

命令: systemctl enable nginx

在这里插入图片描述
重启
在这里插入图片描述
发现服务开机自启成功
发现服务开机自启成功

3.目录结构与基本原理

3.1目录结构

在这里插入图片描述

  • conf:核心配置文件
  • sbin:nignx主程序
  • html:默认情况下的网页
  • logs:记录日志

3.2基本运行原理

在这里插入图片描述
Nginx的进程是使用经典的「Master-Worker」模型,Nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。worker进程主要处理基本的网络事件,多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般会设置与机器cpu核数一致,这里面的原因与nginx的进程模型以及事件处理模型是分不开的。

3.3Nginx配置文件

先将注释全部删除,后面会讲,先将没注释的

worker_processes  1; #允许进程数量,建议设置为cpu核心数或者auto自动检测,注意Windows服务器上虽然可以启动多个processes,但是实际只会用其中一个

events {
    #单个进程最大连接数(最大连接数=连接数*进程数)
    #根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。
    worker_connections  1024;
}


http {
    #文件扩展名与文件类型映射表(是conf目录下的一个文件)
    include       mime.types;
    #默认文件类型,如果mime.types预先定义的类型没匹配上,默认使用二进制流的方式传输
    default_type  application/octet-stream;

    #sendfile指令指定nginx是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度。
    sendfile        on;
    
     #长连接超时时间,单位是秒
    keepalive_timeout  65;

 	#虚拟主机的配置,也可以配置多个主机(监听端口号不能相同)
    server {
    	#监听端口
        listen       80;
        #域名或主机名,可以有多个,用空格隔开
        server_name  localhost;

		#配置根目录以及默认页面
		#http://atguigui.com/xxoo/index.html
        location / {
            root   html;
            index  index.html index.htm;
        }

		#出错页面配置
		#http://atguigui.com/xxoo/50x.html
        error_page   500 502 503 504  /50x.html;
        #/50x.html文件所在位置
        location = /50x.html {
            root   html;
        }
        
    }

}

无sendfile
在这里插入图片描述
有sendfile
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”

文章目录广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”服务 Docker 构建及部署代码支持服务打包&构建服务部署广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署” 服务 Docker 构建及部署 在 ADX 系统中,全链路涉及 大大小小的微服务…

SpringBoot+VUE前后端分离项目学习笔记 - 【22 权限菜单 下】

本节主要实现用户角色菜单分配功能,并且实现前端的动态渲染以及动态路由 数据库: sys_user表增加role字段; sys_role增加flag字段;sys_menu表增加page_path字段。前两者表示用户角色标识,后者是前端页面vue路径,用以实现动态路由 …

verilog学习笔记- 13)呼吸灯实验

目录 简介: 实验任务: 硬件设计: 程序设计: 下载验证: 简介: 呼吸灯采用 PWM 的方式,在固定的频率下,通过调整占空比的方式来控制 LED 灯亮度的变化。PWM即脉冲宽度调制&#x…

2021年帆软杯一等奖作品 |《基于数据可视化的中国编程岗位需求分析》

# 作品主题 #——基于数据可视化的中国编程岗位需求分析一、团队介绍 团队名称:汪汪队立大功 团队成员:乔好鑫、许春阳、窦晨辉 指导老师:施金妹 团队的三位成员均是来自于海南科技职业大学大数据技术与应用专业,专业课主修了pyt…

SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!

这里写目录标题一、演示GIF二、开发前期准备1、数据库2、依赖POM.XML3、idea结构目录三、后端1、实体类2、mapper接口3、mapper.xml4、Servicce接口5、Impl实现6、Controller控制器7、全局异常处理类GlobalExceptionGlobalExceptionHandler8、工具类MD5UtilUUIDUtilCookieUtilV…

消息批处理端口说明

为满足用户需要对多文件做批处理的需求,在2022版本的知行之桥中,开发人员开发设计了3个新的端口,分别是Batch Create 端口、Batch Merge 端口和Batch Split 端口。 功能是对传入端口的消息做批处理,使得消息可以在批处理组中分组在…

mybatis-plus分布式id重复问题

问题起因 k8s 部署的一个服务的两个节点集群 最近频繁报错,数据库主键ID重复,导致数据插入报错 问题定位 还在定位。。。。 问题解决 解决办法主要有两个 指定mybatis-plus workerId dataCenterId 全局配置 #注意这里使用的随机策略 随机区间 …

智能边缘网关

背景介绍 调研发现,数字经济为工业物联网、智能交通以及智慧医疗等场景提出了新的解决方案。工程师利用传感器边缘网关云服务器的系统架构,通过大数据及人工智能算法进行辅助决策,最终为工业设备赋能,提高加工生产效率。近年来&am…

sqli-labs 11~14 多命通关攻略(报错注入)

sqli-labs 11~14 多命通关攻略(报错注入)描述判断注入类型返回结果错误输入总结符号注释判断返回结果中的列数判断返回结果中的列数为 1判断返回结果中的列数为 2报错注入通过报错注入爆破数据库中的表名通过报错注入爆破数据库中的表名(逻辑…

【高阶数据结构】封装unordered_map 和 unordered_set

🌈欢迎来到数据结构专栏~~封装unordered_map 和 unordered_set (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞&…

【北京理工大学-Python 数据分析-3.1Pandas库的基本使用】

Pandas库的引用,常用两大功能Series(一维)和DataFrame(二维和多维) Pandas是Python第三方库,提供高性能易用数据类型的分析工具。 Pandas基于NumPy实现,常与NumPy和Matplotlib一起使用。 Numpy和Pandas的…

SpringCloud-Netflix学习笔记03——什么是Eureka

什么是Eureka Eureka:怎么读? Netflix 在设计Eureka 时,遵循的就是AP原则。 1、CAP原则又称CAP定理,指的是在一个分布式系统中 2、一致性(Consistency) 3、可用性(Availability) 4、…

详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++

第三章 动态规划法 目录 ●第三章 动态规划法 ●前言 ●一、动态规划法是什么? 1.简要介绍 2.生活实例 ●二、动态规划法对斐波那契数列的优化 1.优化方法 2.优化核心代码片段 3.代码实现以及结果展示 ●三、动态规划法的典型案例——最短总距离 …

c语言文件操作(万字解析)

c语言文件操作一.文件的打开与关闭1.文件指针-FILE*2.文件的打开与关闭二.文件的顺序读写1.字符操作函数-fgetc和fputc2.字符串操作函数-fgets和fputs3.格式化函数-fprintf和fscanf4.二进制函数-fread和fwrite5.对比一组函数三.文件的随机读写1.fseek和ftell2.调整指针-rewind四…

Python NumPy 数组索引

前言NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 数组索引…

动态内容管理

这期我们来看动态内存管理的相关知识,话不多说,我们来看今天的正题 目录 1.为什么要有动态内存管理? 2.动态内存函数的介绍 2.1.malloc和free 2.2.calloc 2.3.realloc 3. 常见的动态内存错误 3.1 对NULL指针的解引用操作 3.2 对动态开…

Pytorch DataLoader中的num_workers (选择最合适的num_workers值)

一、概念 num_workers是Dataloader的概念,默认值是0。是告诉DataLoader实例要使用多少个子进程进行数据加载(和CPU有关,和GPU无关) 如果num_worker设为0,意味着每一轮迭代时,dataloader不再有自主加载数据到RAM这一步骤&#xff0…

滑动列表中使用粒子特效层级问题

前言 前面几个月疯狂堆功能,现在开始疯狂加动效,每次一说到动效就脑壳痛,还不如让我写功能。这不,今天又遇到问题了。滑动列表中mask粒子特效问题遮挡。 情况1 步骤1:使用粒子特效的层级应该>当前ui层级。 例如:当前界面所在层级为2000,其上的粒子特效至少为2001。…

dp(八)买卖股票的最好时机 (一,二、三)

目录 买卖股票的最好时机(一)_牛客题霸_牛客网 买卖股票的最好时机(二)_牛客题霸_牛客网 买卖股票的最好时机(三)_牛客题霸_牛客网 假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买…

基于云的文档管理系统:DocuWare Cloud

云文档管理软件:DocuWare Cloud 一流的云文档管理软件和工作流自动化内容服务,适用于任何规模的团队和公司——在多租户云平台上交付。 DocuWare Cloud 可在订阅的基础上为不同规模的公司提供灵活的许可证。 每个订阅都涵盖全方位的服务,包…