Nginx学习 (1) —— 初识Nginx(编译安装、启动停止、简单配置)

2023-05-16

文章目录

    • Nginx的发行版本
    • Nginx的编译安装(ubuntu18.04)
    • Nginx相关操作
      • Nginx启动停止命令
      • 安装Nginx为系统服务
    • Nginx的目录结构与基本原理
      • 目录结构:
      • 基本运行原理:
      • 基础配置:
        • 核心配置

Nginx的发行版本

  1. Nginx开源版:http://nginx.org/
    比较干净,主要就完成了网站服务器、代理服务器、负载均衡服务器。没有其他额外的功能。
  2. Nginx plus商业版:https://www.nginx.com
    由F5官方出品,在原有nginx上增加了很多使用的功能。
  3. Openresty:http://openresty.org/
    nginx+lua进行了完美整合。
  4. Tengine:http://tengine.taobao.org/

Nginx的编译安装(ubuntu18.04)

  1. 下载源码 http://nginx.org/download/nginx-1.22.1.tar.gz

    解压tar包

    tar -zxvf nginx-1.22.1.tar.gz
    
  2. 进入解压后的目录: cd nginx-1.22.1

  3. 安装所需依赖库:

    sudo apt install gcc
    sudo apt-get install libpcre3-dev
    sudo apt install zlib1g-dev
    
  4. sudo ./configure --prefix=/usr/local/nginx
    显示下列信息表示成功
    在这里插入图片描述

  5. 编译:

    sudo make
    sudo make install
    
  6. 启动服务:

    cd /usr/local/nginx/sbin
    sudo ./nginx
    

    如果启动报错
    在这里插入图片描述
    说明80端口被占用
    解决办法:

    sudo netstat -natp| grep 80   	// 找到占用80端口的进程
    sudo killall -9 xxx				// 杀掉该进程
    或者
    sudo service xxx stop			// 停止占用80端口的服务
    

    在这里插入图片描述

    再次启动nginx

    在浏览器输入ip,若访问超时:

    systemctl stop firewalled.service	// 关闭防火墙
    或者
    firewall -cmd --zone=public --add-port=80/tcp --permanent	// 防火墙放行80端口(nginx默认是占用80端口)
    
  7. 浏览器输入ip地址访问:显示如下表示成功
    在这里插入图片描述

Nginx相关操作

Nginx启动停止命令

sudo ./nginx			// 启动
sudo ./nginx -s stop	// 停止
sudo ./nginx -s quit	// 优雅关闭,在退出之前完成已经接收的请求任务
sudo ./nginx -s reload	// 重新加载配置文件

安装Nginx为系统服务

对于初次安装Nginx的Linux系统来说是不支持 service 和 systemctl 命令启动的
在这里插入图片描述

如下操作可以使 service 和 systemctl 命令来操作nginx的启动停止

vi /usr/lib/systemd/system/nginx.service	// 没有system目录可以创建一个
systemctl daemon-reload		// 重新加载系统服务

// 输入内容如下,注意安装路径不是/usr/local/nginx的话需要修改成对应的路径
[Unit]
Description=nginx web service
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

Nginx的目录结构与基本原理

目录结构:

在这里插入图片描述

基本运行原理:

在这里插入图片描述
nginx启动时会启动主进程,负责读取配置文件并做校验,校验成功后会fork()多个子进程,此后主进程主要的工作就是协调子进程进行工作。
当一个用户请求进来后,首先由worker子进程解析这一次请求(因为子进程是知道配置文件的内容的,所以子进程可以判断该请求的资源是否存在)发现请求是想获取index.html文件,然后做出响应。

基础配置:

核心配置

nginx.conf文件中的配置:(启动nginx需要的最少配置)

  • worker_processes 1;// 配置在启动nginx的时候需要启动多少个worker子进程。这主要取决于服务器硬件的牛皮程度,硬件不行配置参数高了效率反而会变低。基本配置逻辑主要还是一个CPU内核对应一个worker_processes
  • events { worker_connections 1024; } // 事件驱动模块,worker_connections配置每一个worker_processes可以创建多少个连接。
  • http{…}:
    • include mime.types; // 配置include引用其他配置文件。(mime.types,根据后缀名配置文件的类型,比如照片文件、文本文件还是什么类型都在mime.types文件中配置。 注意: mime.types文件配置的类型是返回给客户端让客户端去解析的)
    • default_type application/octet-stream; // 默认文件类型。mime.types文件总不能把所有文件类型都配置上,总会出现没见过的后缀,此时就返回这个默认文件类型让客户端去解析。
    • sendfile on; // 数据零拷贝。(后续详细理解)
    • keepalive_timeout 65; // 保持连接超时的时间。
    • server{…}:一个server模块表示一个主机
      • listen 80; // 指监听的端口号。
      • server_name localhost; // 当前这台主机的主机名,这个字段还可以配置域名。
      • location{…} // URI 资源定位所需要的所有信息。一个主机可以配置多个location。
        • root html; // 跟nginx/html文件夹是一一对应的。
        • index index.html index.htm;// 默认页。
      • error_page 500 502 503 504 /50x.html;// 当出现错误码为配置的内容时就跳转到50x.html
      • location = 50x.html {root html}:报错文件找不到的时候,将定位到html文件夹去找50x.html

nginx.conf有上述配置即可启动

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx学习 (1) —— 初识Nginx(编译安装、启动停止、简单配置) 的相关文章

  • 固定翼武德充沛,多旋翼费拉不堪

    实际飞行测试 同样的动力组合 xff1a 2205电机 43 5030 3叶桨 同样的动力电池 xff1a 2200ma xff0c 3s xff0c 20c 基本一致的起飞全重 xff1a 固定翼680g xff0c 多轴700g 续航时
  • PH7系统简介

    PH7系统简介 PH7是什么 xff1f 狭义的PH7是一套以无人机飞控为典型应用案例 xff0c 涵盖无人车或船 GCS数据采集 伺服控制 AHRS 地面模拟仿真系统等的通用控制器代码框架 xff0c 该框架以Stm32CubeMx生成代
  • 小型无人机的布线与布局设计

    小型无人机的布线与布局设计 xff0c 似乎看上去像是在总体设计当中一个细枝末节 xff0c 是往往会被忽略掉的部分 但实际上 xff0c 布线与布局虽然不像飞控算法设计 飞行平台气动设计是总体设计当中最核心和最重要的部分 xff0c 但却
  • Bread Board Pilot 即将发布

    Bread Board Pilot xff08 简称BBP xff09 为基于 PH7 代码框架 xff08 PH7 系统简介 xff09 的一款飞控快速原型开发板 相比传统飞控板 xff0c BBP 的硬件设计具有以下突出特点 xff1a
  • Mavlink 协议硬解析主要代码

    int MAVLinkProtocol ParseMsg BYTE arMsgBuf MSGVALUE pMavMsg CString amp strMsgText Function Parameters arMsgBuf 为完整的 mav
  • 网络调试助手(NetAssist)不能正常创建TCP Serve连接问题

    一 问题由来 第一次使用网络调试助手 xff08 NetAssist xff09 建立服务端 xff08 TCP Server xff09 连接时碰到链接失败的问题 xff0c 如图所示 xff0c 其原因在于本地主机端口8080被其他进程
  • postman调用J-WSSE认证方式接口

    J WSSE认证方式的内容包括 xff1a 用户名 密码 nonce 时间戳 nonce是一个随机字符串 xff1b 时间戳 Created 为W3DTF格式 xff1b 密码创建方式为 xff1a PasswordDigest 61 Ba
  • ROS 三种通信编程入门:【话题通信】【服务通信】【动作通信】

    目录 一 创建工作空间二 ROS通信编程2 1 话题编程2 2 服务编程2 3 动作编程 五 总结六 参考资料 本文内容 xff1a 学习古月居 ROS 教学课件和相关视频 xff0c 练习课件上的话题通信 服务通信编程代码示例 一 创建工
  • .Net6.0系列-8 依赖注入(一)

    依赖注入 Dependency Injection DI 是控制反转 Inversion of Control IOC 思想的实现方式 依赖注入简化模块的组装过程 降低模块之间的耦合度 DI的几个概念 服务 Service 和框架请求之后返
  • Git学习记录

    Git学习记录 概念 xff1a 两个人同时参与开发 xff0c 那么就把这个项目放在一个公共的地方 xff0c 需要的时候都可以去获取 xff0c 有什么改动 xff0c 都可以进行提交 Git就是这样一个免费 开源的分布式版本控制系统
  • Maven学习记录

    Maven学习笔记 导读 xff1a Maven 是专门用于构建和管理Java相关项目的工具 Maven的主要用处 xff1a 项目结构一致统一维护jar包 xff0c 使jar包实现共享 流程 xff1a idea配置 打开File gt
  • 软件需求总结(总)

    软件需求工程复习归纳 课程目标 xff1a 系统地掌握需求开发和管理的技术和方法掌握需求分析和建模的技术和方法掌握需求规格的验证和评审等要点和方法结合具体的实际项目开发 xff0c 解决软件项目开发中的有关需求的各种问题能够适应目前各种应用
  • C++: extern关键字功能和用法研究

    今天遇到在aaa cpp文件中定义如下函数 xff1a 在bbb h文件中有以下声明 xff1a 但在aaa cpp中没有包含相关头文件 xff0c 那么为什么可以调用相关函数 xff0c 这就是extern的功能 1 extern的功能一
  • C语言之断言

    define assert param expr expr void 0 assert failed char FILE LINE Exported functions void assert failed char file int li
  • NMEA 0183协议解析

    NMEA 0183协议是目前GNSS接收机上使用最广泛的协议 xff0c 大多数常见的GNSS接收机 GNSS数据处理软件 导航软件都遵守或者至少兼容这个协议 XXGGA 时间 经纬度位置 解算状态 卫星颗数等相关信息 单GPS GPGGA
  • HTTP Digest认证客户端的实现

    HTTP Digest认证客户端的实现 http lwccb blog 163 com blog static 116970122006727338520 networks 2006 08 27 15 38 52 阅读34 评论0 字号 x
  • 解决vscode C++代码查找所有引用“Find all reference“慢的问题

    概述 使用vscode编写C 43 43 代码右键 34 Find all reference 34 时 xff0c 发现响应特别慢 xff0c 而且很不准确 一个解决方法是使用global组件待的gtags 步骤 在VSCode中安装gt
  • 安防摄像头云端录像计划快捷配置-LiveNVR Onvif/RTSP流媒体服务

    LiveNVR Onvif RTSP流媒体服务 xff0c 支持RTSP稳定拉流接入 xff0c 支持Onvif协议接入 xff0c 支持RTMP HLS HTTP FLV分发 xff0c 将传统安防监控设备互联化 xff0c 无插件直播等
  • LiveNVR中使用Onvif协议控制预置位

    LiveNVR支持预置位控制 xff0c 包括转到指定预置位 xff0c 设置指定预置位 xff0c 删除指定预置位 预置位在安防领域有较为普遍的应用 xff0c 可以进行很多既定位置的跳转 xff0c 很方便 之前我们说过如何用Onvif
  • .NET C#利用ZXing生成、识别二维码/条形码

    文章的原来的IP地址是 xff1a http www jb51 net article 99312 htm ZXing是一个开放源码的 xff0c 用Java实现的多种格式的1D 2D条码图像处理库 xff0c 它包含了联系到其他语言的端口

随机推荐