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

news2024/11/26 20:38:04

文章目录

    • 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有上述配置即可启动

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

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

相关文章

【UE4 制作自己的载具】1-使用3dsmax制作载具

学习谌嘉诚课程所做笔记源视频链接:【虚幻4】UE4雪佛兰科迈罗汽车详细制作中文教程!(汽车骨骼绑定驾驶、动画蓝图)汽车模型下载链接:https://pan.baidu.com/s/1ZH5gaAwckzRIZ0w6n0qvIA密码:19sj步骤&#x…

【2023蓝桥杯】2017年第八届C/C++A组真题(解析笔记)

目录 T1:迷宫 - 暴力dfs标注 T2:跳蚱蜢 - 9数算式 全排列 枚举乘号位置 T3:魔方状态 - 模拟 判重 (高手入*****) T4:方格分割 - dfs 从中心点去切割 T5:字母组串 - 递归思维-搞清楚参数…

Spring架构篇--2.5.4 远程通信基础--Select 源码篇--selector.close()总结

前言:通过selector 的poll 来完成所有socket 事件的监听,当不需要selector时 通过selector.close() 完成通道的关闭和资源的释放; 1 selector.close()关闭: AbstractSelector 类中close 方法: public final void cl…

简单说说OSI网络七层模型

如果你读过计算机专业,或者学习过网络通信,那你一定听说过 OSI 模型,它曾无数次让你头大。OSI 是 Open System Interconnection 的缩写,译为“开放式系统互联”。OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理…

你知道这几种常见的JVM调优场景吗?

看此文前需已了解了运行时的数据区域和常用的垃圾回收算法,也了解了Hotspot支持的垃圾回收器。 一、cpu占用过高 cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束后cpu占用率就下降了&#xf…

WebGL和OpenGL的区别及关系

什么是WebGLWebGL™是一个跨平台的,免版税的开放Web标准,用于基于OpenGL ES的低级3D图形API,通过HTML5 Canvas元素向ECMAScript公开。熟悉OpenGL ES 2.0的开发人员将使用GLSL将WebGL识别为基于Shader的API,其构造在语义上与底层Op…

FISCO BCOS(二十七)———java操作WeBase

一、搭建fiscobcos环境 1.1、安装jdk1.8 https://blog.csdn.net/weixin_46457946/article/details/1232435131.2、安装mysql https://blog.csdn.net/weixin_46457946/article/details/1232447361.3、安装python https://blog.csdn.net/weixin_46457946/article/details/123…

Lookup argument总览

1. 引言 详情参看Ingonyama团队Tomer 2023年论文《A Brief History of Lookup Arguments》。 Bootle等人2018年论文《Nearly linear-time zero-knowledge proofs for correct program execution》中首次提出了lookup协议,用于证明如下statement: 此处…

Python socket之TCP通信、下载文件

TCP简介TCP介绍TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、…

手撕八大排序(上)

排序的概念及其引用: 排序的概念: 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有…

Linux上基于PID找到对应的进程名以及所在目录

Linux上基于PID找到对应的进程名以及所在目录前言找到进程的pid通过top命令查看通过 ps -ef |grep nignx进行查看通过端口号进行查看查看nginx进程目录前言 在一台新接触的服务器,却不熟悉搭建所在目录的时候,这时候就就可以通过ps查找进程,并…

巧用性格上的差异来组建团队

你好,我是得物 App 交易平台及中间件平台的 Team Leader Alan。 组建团队过程中,你有没有遇到过类似的场景:团队中某些人之间总是互相不对付、气场不合,不管是日常沟通中还是方案对齐,总是会出现面红耳赤的场面。 从…

Linux_线程概念

进程回顾 在学习线程之前,我们先回顾一下之前讲的进程概念 当我们创建一个进程,操作系统会将磁盘中的代码load到内存中,然后创建当前进程的task_struct(后面可能会用”PCB“或者”进程控制块“代替),创建…

egg+vue实现登录功能【解决vue中登录的潜在问题】

前后端登录功能实现前言一、cookie和session二、代码呈现1.egg部门代码2.vue代码过程前言 记忆在时间面前总是不堪一击! 本人的记录,下面内容仅供参考,如有什么什么,请自行解决。 一、cookie和session 不多赘述,详情…

大数据Hadoop教程-学习笔记03【Hadoop MapReduce与Hadoop YARN】

视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程教程资源: https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666【P001-P017】大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】【17p】【P018-P037】大数据Hadoop教程-学习笔记02【…

风险的定义以及CAPM 和 APT

文章目录风险定义:CAPMAPT(Arbitrage Pricing Theory)套利定价模型风险定义: 投资组合的收益率等于组合中各资产收益率的加权平均,但是投资组合的标准差并不等于组合中各资产标准差的加权平均,而是小于等于…

Git 详细教程

目录1.简介:2.安装Git3.Git 如何工作状态区域4.使用Git5.Git配置5.1 创建仓库 - repository5.2 配置5.2.1 --global5.2.2 检查配置6. 查看工作区的文件状态6.1什么是工作区6.2 如果显示乱码的解决方式7.在工作区添加单个文件8. 添加工作区文件到暂存区9. 创建版本10…

数据结构与算法(二)(Python版)

数据结构与算法(一)(Python版) 文章目录递归动规初识递归:数列求和递归三定律递归的应用:任意进制转换递归的应用:斐波那契数列递归调用的实现分治策略与递归优化问题和贪心策略找零兑换问题贪心…

RocketMQ-基本概念

主题(Topic) Apache RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。主题通过TopicName来做唯一标识和区分。 主题的作用主要如下: 定义数据的分类隔离: 在 Apache RocketMQ 的方案设计中&…

挚文集团短期内不适合投资,长期内看好

来源:猛兽财经 作者:猛兽财经 挚文集团(MOMO)在新闻稿中称自己是“中国在线社交和娱乐领域的领军企业”。 该公司旗下的陌陌是中国“陌生人社交网络”移动应用类别的领导者,并在2022年9月拥有超过1亿的月活跃用户。探…