Nginx笔记(一)

一、Nginx简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13],同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。 [11]
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。 [12]
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

二、Nginx入门

image.png

1、静态资源服务

通过本地文件系统提供服务

2、反向代理
  • Nginx的强大性能:我们自己开发的应用,在面临用户量逐步增加的时候,可能会需要扩容此时就需要一个方向代理服务器,把用户的请求代理到我们的应用。
  • 缓存:由于链路的增加,响应的时延会变长,所以通常我们会把一些基本不变,或者短时间能不变的数据存到nginx缓存中,从而来提高性能。
  • 负载均衡:由于我们有多个应用,我们期望将流量均匀的打倒不同的服务,所以需要负载均衡功能。
3、API服务

OpenResty:有一些场景我们需要nginx直接访问数据库、或者redis等,nginx也为我们提供了对应的能力。

三、Nginx优点

  • 高并发、高性能:能支持十万甚至百万的并发
  • 扩展性好体现在Nginx模块化设计
  • 可靠性高:Nginx可以持续不断的运行数年
  • 热部署:支持热部署,不用重启服务
  • BSD许可证:可以基于Nginx二开

image.png

四、Nginx组成

1、Nginx二进制可执行文件

该部分由各个模块源码编译组成的一个文件

2、Nginx.conf

Nginx的配置文件

3、access.log

记录了每一条http请求的信息

4、error.log

记录了错误日志

五、安装Nginx

安装Nginx有一般有两种方式,一种是基于源码编码;另一种是用其他,例如yum、docker等。我们这里基源码编译的形式来安装Nginx

1、下载源码压缩包

官网地址:http://nginx.org/en/download.html
image.png
使用wget命令下载

http://nginx.org/download/nginx-1.26.1.tar.gz

结果如下
image.png

2、解压
tar -zxvf nginx-1.26.1.tar.gz

结果如下
image.png

3、目录介绍
  • auto:存放了一些编译所需要的文件,包括类库、操作系统支持等等
  • CHANGES:版本变更记录
  • conf:配置文件
  • configure:脚本,用于生成中间文件,在编译之前需要执行
  • contrib:nginx的contrib文件夹主要用于存放开源爱好者共享的代码。‌这个文件夹包含了各种有用的脚本和工具
  • html:提供了两个标准的html文件,默认的界面、500错误等
  • man:帮助文件
  • src:nginx的源码
4、安装Nginx

首先在编译前可以查看Nginx编译支持哪些参数。

./configure --help

部分参数如下
image.png

1、先生成中间文件,这里我们指定路径为 /usr/local/nginx
 ./configure --prefix = /usr/local/nginx

image.png
很明显报错了,因为nginx的编译依赖于GCC、PCRE、ZLIB、OPENSSL环境,这里要先安装一下,命令如下

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

image.png

重新执行刚才的命令

 ./configure --prefix = /usr/local/nginx

image.png

2、编译+安装

在上一步骤,我们完成了中间文件的生成,此时我们在执行编译和安装命令。我们可以看下生成的文件,多了一个objs文件夹,其中会有一个ngx_modules.c文件,该文件记录了哪些模块会被编译进Nginx
image.png
这里我们看一下具体会有哪些模块
image.png
接着我们继续编译和安装Nginx,执行命令 make
image.png
最后执行安装命令:make install
image.png

5、启动Nginx

进入刚才配置的目录 /usr/local/nginx
image.png
所有的脚本都放在sbin目录下,进入sbin目录
image.png
执行命令 ./nginx 执行完之后查看进程是否开启

ps -ef | grep nginx

image.png
在浏览器访问 http://ip
image.png

小结:

本文主要对Nginx做了一些简单的介绍,包括Nginx的使用场景、优点以及如何安装一个Nginx,希望对你有所帮助。

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

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

相关文章

如何在宝塔面板给域名配置 SSL 证书

首先需要有证书 这里以阿里云为例 1. 首先进入到 SSL 证书管理控制台 选择个人测试证书,并点击购买 免费的可以使用三个月。 购买完成之后回到控制台。 点击创建证书,将标红的地方填写,其他默认就好。 然后提交审核就行。 这里需要对域名…

【React】组件:全面解析现代前端开发的基石

文章目录 一、什么是组件?二、组件的类型三、组件的生命周期四、状态管理五、属性传递六、组合与继承七、最佳实践 在现代前端开发中,React 已成为开发者构建用户界面的首选框架之一。React 的强大之处在于其组件化设计,允许开发者将 UI 拆分…

Wireshark自定义协议解析器插件C语言开发二

接着上一篇安装文章,在wireshark插件开发完成后,仿真的dll并不能直接分享使用,当另外电脑缺少必要的c环境或依赖项时候,在打开wireshark软件时候即会报错。 上图是仿真得到的dll文件路径,但是并不能在其他没有安装了v…

linux驱动--中断

中断号和中断的申请 中断号的添加-----定义设备节点,描述当前设备 通过设备树文件获取 /dts/xxxx.dts文件中进行设备的设置 在dts设备树文件中进行设备的定义,包括继承的设备,中断号的设置 需要对我们的dts设备树文件进行编译&#xff0…

天机学堂第二天项目 添加我的课表 项目总结

目录 根据产品原型得到数据库表结构 RabbitMq监听 构造器注入 幂等 mybatisplus 分页查询的多种写法 在new page里面添加排序 查询条件中 用orderBydESC指定排序 ​编辑 链式编程中使用page指定排序 stream流 ​编辑 在网关中解析token 根据产品原型得到数据库表结构 根…

基于物联网的区块链算力网络,IGP/BGP协议

目录 基于物联网的区块链算力网络 IGP/BGP协议 IGP(内部网关协议) BGP(边界网关协议) 内部使用ISP的外部使用BGP的原因 一、网络规模和复杂性 二、路由协议的特性 三、满足业务需求 四、结论 基于物联网的区块链算力网络 通 过 多个物联网传感器将本地计算…

使用在UE5中使用AirSim插件Eigen库头文件引用报错,出现报错的解决方式

一、概述 如图所示&#xff0c;用红线圈出的两条头文件引用会报错&#xff0c;提示无法找到他们&#xff0c;但是可以发现的是&#xff0c;他们的路径书写是没有问题的。 // #include <Source/Airlib/deps/eigen3/Eigen/Core> // #include <Source/Airlib/deps/eigen…

【网络爬虫技术】(1·绪论)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;网络爬虫开发技术入门_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 …

日拱一卒 | JVM

文章目录 什么是JVM&#xff1f;JVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM&#xff1f; 我们知道Java面试&#xff0c;只要你的简历上写了了解JVM&#xff0c;那么你就必然会被问到以下问题&#xff1a; 什么是JVM&#xff1f;简单说一下JVM的内存模型&#xff1f;…

梯度下降算法,gradient descent algorithm

定义&#xff1a;是一个优化算法&#xff0c;也成最速下降算法&#xff0c;主要的部的士通过迭代找到目标函数的最小值&#xff0c;或者收敛到最小值。 说人话就是求一个函数的极值点&#xff0c;极大值或者极小值 算法过程中有几个超参数&#xff1a; 学习率n&#xff0c;又称…

代码随想录算法训练营第22天-leetcode-回溯算法part01:

#回溯算法理论基础 能解决的问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合切割问题&#xff1a;一个字符串按一定规则有几种切割方式子集问题&#xff1a;一个N个数的集合里有多少符合条件的子集排列问题&#xff1a;N个数按一定规则全排列&…

大数据——HBase原理

摘要 HBase 是一个开源的、非关系型的分布式数据库系统&#xff0c;主要用于存储海量的结构化和半结构化数据。它是基于谷歌的 Bigtable 论文实现的&#xff0c;运行在 Hadoop 分布式文件系统&#xff08;HDFS&#xff09;之上&#xff0c;并且可以与 Hadoop 生态系统的其他组…

太美了!智能汽车触摸屏中控让驾驶员和乘客目不转睛

太美了&#xff01;智能汽车触摸屏中控让驾驶员和乘客目不转睛 引言 艾斯视觉作为行业ui设计和前端开发领域的从业者&#xff0c;其观点始终认为&#xff1a;智能汽车已经成为现代交通的新宠。其中&#xff0c;触摸屏中控系统以其美观、智能、人性化的特点&#xff0c;为驾驶…

在线投稿小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;编辑管理&#xff0c;用户文章管理&#xff0c;文章分类管理&#xff0c;文章展示管理&#xff0c;文章稿酬管理&#xff0c;通知公告管理&#xff0c;系统管理 微信端账号功能包…

59 阻塞和非阻塞IO

阻塞式io 一个简单的用户输入回显功能&#xff0c;在用户未输入内容时&#xff0c;会一直阻塞住 #include <iostream> #include <unistd.h>using namespace std; int main() {char buff[1024];while (true){cout << "please enter ";fflush(stdo…

VAD: 向量化场景表示,用于高效的自动驾驶

VAD: Vectorized Scene Representation for Efficient Autonomous Driving VAD: 向量化场景表示&#xff0c;用于高效的自动驾驶 https://github.com/hustvl/VAD Abstract Autonomous driving requires a comprehensive understanding of the surrounding environment for …

英语单词终极记忆

你应当知道一个专业术语&#xff0c;叫COCA。 这个单词很好记&#xff0c;但你可能记不住。 你应当这样记&#xff1a; 你记住了 可口可乐&#xff0c;也就记住了 coca &#xff08;谐音&#xff1a;可口&#xff09;。 从而记住了 COCA。 无论如何&#xff0c;你这辈子&…

react版本判断是否面包含

react-admin: react版本 import { useState,useEffect } from react import ./Secene.css import { Checkbox } from "antd"; import* as turf from turf/turf; import type { CheckboxProps } from antd; // const onChange: CheckboxProps[onChange] (e) >…

Spring Boot + Spring Batch + Quartz 整合定时批量任务

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 最近一周&#xff0c;被借调到其他部门&#xff0c;赶一个紧急需求&#xff0c;需求内容如下&#xff1a; PC网页触发一条设备升级记录&#xff08;下图&#xff09;&#xff0c;后台要定时批量设备更…

第15周 Zookeeper分布式锁与变种多级缓存

Zookeeper **************************************************************