Nginx_入门
系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Nginx_入门
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 系列文章目录
- 前言
- 一、Nginx概述
- 二、Nginx的应用场景
- 三、安装Nginx
- 环境准备
- 安装依赖库
- 下载/安装Nginx
- 普通安装Nginx
- Docker安装Nginx
- 部署命令
- 四、目录介绍
- conf目录
- html目录
- logs目录
- sbin目录
- 五、Nginx启停服务
- 启动
- 停止服务
- 重启
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
欢迎来到 Nginx 的世界!Nginx 是一款强大的 Web 服务器和反向代理服务器,被广泛应用于互联网上的众多网站和应用程序。
在这个博客中,我将带领你踏上学习 Nginx 的旅程,从入门开始,逐步深入了解这个令人惊叹的工具。
无论你是一个开发者、系统管理员,还是对 Web 服务器有兴趣的技术爱好者,Nginx 都能为你提供强大的功能和灵活性。通过学习 Nginx,你将能够更好地理解如何构建高性能、可靠的 Web 应用程序。
在接下来的博客文章中,我将为你介绍 Nginx 的基本概念、安装和配置方法,以及如何优化 Nginx 以获得更好的性能。
我希望这个博客能够成为你学习 Nginx 的起点,并为你提供有用的资源和实践经验。让我们一起探索 Nginx 的世界,释放其强大的潜力!如果你有任何问题或建议,请随时留言评论。现在,就让我们开始这段精彩的 Nginx 学习之旅吧!
提示:以下是本篇文章正文内容,下面案例可供参考
一、Nginx概述
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型。
说了这么多,大家可能还是有点迷糊。举个例子,Nginx 服务器就像是一个交通指挥员,它负责接收和处理来自客户端(比如你的浏览器)的请求,并将这些请求转发给相应的服务器(比如网站的后端服务器)。
当你在浏览器中输入一个网址时,Nginx 服务器会接收到这个请求,并根据预设的规则,将其转发给合适的服务器。它可以根据请求的类型、URL、服务器的负载等因素来决定将请求发送到哪个服务器。
二、Nginx的应用场景
- HTTP服务器:Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。
- 反向代理:反向代理应该是Nginx使用最多的功能了,反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
- 负载均衡:Nginx 支持多种负载均衡策略,如轮询、加权轮询、IP 哈希等,可以将请求均匀地分配给多个后端服务器,提高系统的并发处理能力。
- 动静分离:动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。
三、安装Nginx
环境准备
- 确认网络可用
- 确定yum可用
- 确定关闭防火墙
- 确认关闭SELinux
安装依赖库
yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel
- gcc:编译依赖gcc环境
- pcre:PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表达式库。
- zlib:zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
- Openssl:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
下载/安装Nginx
普通安装Nginx
1.官网下载Nginx安装包,并上传到虚拟机,点击下载。
2.创建存放源文件的文件夹
首先在目录/opt下创建apps目录,用于存放源文件以及解压后的文件
3.上传Nginx到步骤1创建的目录下
4.解压 Nginx
[root@node1 apps]# pwd
/opt/apps
[root@node1 apps]# ls
Nginx-1.20.1.tar.gz
[root@node1 apps]# tar -zxvf Nginx-1.20.1.tar.gz
[root@node1 apps]# cd Nginx-1.20.1
5.进入到 Nginx 解压包目录/opt/apps/Nginx-1.20.1 目录中,查看 Nginx 的目录。各目录作用如下:
- auto:存放 Nginx 自动安装的相关文件
- conf:存放 Nginx 服务器配置文件
- configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成
- contrib:存放由其他机构贡献的文档材料
- html:存放 Nginx 欢迎页面
- man:manual,手册,存放 Nginx 帮助文档
- src:存放 Nginx 源码
6.使用 configure 命令可以生成makefile文件。
[root@node1 Nginx-1.20.1]# mkdir -p /var/temp/nginx/client
[root@node1 Nginx-1.20.1]# pwd
/opt/apps/nginx-1.20.1
[root@node1 Nginx-1.20.1]# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
安装编译参数如下:
| 编译选项 | 作用 |
|---|---|
| -prefix=/etc/Nginx | 主目录 |
| –sbin-path=/usr/sbin/Nginx | 执行命令 |
| –modules-path=/usr/lib64/Nginx/modules | Nginx模块 |
| –conf-path=/etc/Nginx/Nginx.conf | Nginx配置文件 |
| –error-log-path=/var/log/Nginx/error.log | 错误日志 |
| –http-log-path=/var/log/Nginx/access.log | 访问日志 |
| –pid-path=/var/run/Nginx.pid | Nginx启动的pid |
| –lock-path=/var/run/Nginx.lock | Nginx的锁 |
| –http-client-body-temp-path=/var/cache/Nginx/client_temp | 执行对应模块时,Nginx锁保留的临时性文件 |
| –http-proxy-temp-path=/var/cache/Nginx/proxy_temp | 指定作为代理服务器时,服务器响应报文的临时存放路径 |
| –http-fastcgi-temp-path=/var/cache/Nginx/fastcgi_temp | 指定了在运行 FastCGI 时临时文件的存储路径 |
| –http-uwsgi-temp-path=/var/cache/Nginx/uwsgi_temp | 指定了在运行 UWSGI(Unicorn Web Server Gateway Interface)时临时文件的存储路径 |
| –http-scgi-temp-path=/var/cache/Nginx/scgi_temp | |
| –user=Nginx | 设定Nginx进程启动的用户 |
| –group=Nginx | 设定Nginx进程启动的用户组 |
| –with-cc-opt=parameters | 设置额外的参数将被添加到CFLAGS变量 |
| –with-ld-opt=parameters | 设置附加的参数,连接系统库 |
7.编译安装
make && make install
Docker安装Nginx
1.拉取官方的Nginx镜像
[root@localhost ~]# docker pull nginx
2.使用 Nginx 默认的配置来启动一个 Nginx 容器实例
[root@localhost ~]# docker run --rm --name nginx-test -p 8080:80 -d nginx
参数的含义如下: --rm:容器终止运行后,自动删除容器文件。 --name nginx-test:容器的名字叫做Nginx-test,名字自己定义. -p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口 -d:容器启动后,在后台运行
3.创建本地目录,用于存放Nginx的相关文件信息
mkdir -p /opt/nginx/www /opt/nginx/conf
4.拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器ID可以查看 docker ps 命令输入中的第一列
docker cp 358354f206fd:/etc/nginx/nginx.conf /home/nginx/conf/
部署命令
使用该命令就不需要再映射本地目录到Nginx容器
docker run --rm -d -p 8081:80 --name nginx-test-web \-v /opt/nginx/www:/usr/share/nginx/html \-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \nginx
参数说明:
- –rm:容器终止运行后,自动删除容器文件。
- -p 8081:80: 将容器的 80 端口映射到主机的 8082 端口.
- –name nginx-test-web:将容器命名为 Nginx-test-web
- -v /home/Nginx/www:/usr/share/Nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/Nginx/html。
- -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
四、目录介绍
conf目录
Nginx所有配置文件的目录,极其重要。在该目录中包含一个Nginx.conf配置文件。
html目录
Nginx的默认站点目录。
logs目录
存放Nginx的日志文件
sbin目录
Nginx命令的目录,如Nginx的启动命令。
五、Nginx启停服务
启动
./Nginx -h
参数说明:
- -v : 打印版本号
- -V : 打印版本号和配置
- -t:测试配置正确性并退出
- -q:测试配置时只显示错误
- -s:向主进程发送信号
- -p:指定Nginx服务器路径前缀
- -c: 指定Nginx配置文件路径
- -g: 指定Nginx附加配置文件路径
停止服务
快速停止,快速停止是指立即停止当前Nginx服务正在处理的所有网络请求,马上丢弃连接,停止工作。
Nginx -s stop # 快速关闭
平缓停止,平缓停止是指允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭连接,停止工作。
Nginx -s quit # 等待工作进程处理完成后关闭
重启
更改Nginx服务器的配置和加入新模块后,如果希望当前的Nginx服务应用新的配置或使新模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务,然后使用新的Nginx配置文件重启服务。
Nginx -s reload # 向主进程发送信号,重新加载配置文件,热重启
Nginx -s reopen # 重启 Nginx
总结
提示:这里对文章进行总结:
希望这篇博客对你了解 Nginx 有所帮助!如果你有任何问题或想要进一步讨论,欢迎在评论中留言。
相关文章:
Nginx_入门
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 Nginx_入门 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、Nginx概述二、Nginx的应用…...
坚持刷题 | 平衡二叉树
文章目录 题目考察点代码实现实现总结对实现进一步改进扩展提问 坚持刷题,老年痴呆追不上我,今天继续二叉树:平衡二叉树 题目 110.平衡二叉树 考察点 递归能力: 能否使用递归来解决问题。树的基本操作:能否正确地访…...
江大白 | 万字长文图解Numpy教程,看这一篇就够了!
本文来源公众号“江大白”,仅用于学术分享,侵权删,干货满满,有超级详细的图解。 原文链接:万字长文图解Numpy教程,看这一篇就够了! (qq.com) 以下文章来源于博客:Medium 作者&…...
数据结构——静态链表
1.定义: (1)单链表:各个结点散落在内存中的各个角落,每个结点有指向下一个节点的指针(下一个结点在内存 中的地址); (2)静态链表:用数组的方式来描述线性表的链式存储结构: 分配一…...
C++ 知识列表【图】
举例C的设计模式和智能指针 当谈到 C 的设计模式时,以下是一些常见的设计模式: 工厂模式(Factory Pattern):用于创建对象的模式,隐藏了对象的具体实现细节,只暴露一个公共接口来创建对象。 单例…...
系统登录的时候的密码如何做到以加密的形式进行登录【java.security包下的api】工具类。
/** description: 将普通的publicKey转化得到一个RSAPublicKey* author: zkw* date: 2024/1/24 16:17* param: publicKey 普通的publicKey* return: RSAPublicKey 得到一个新的RSAPublicKey**/public static RSAPublicKey getPublicKey(String publicKey) throws NoSuchAlgorit…...
java基础学习: 什么是泛型的类型擦除
文章目录 一、什么是泛型2、泛型编译前和编译后对比3、泛型的优点(1)提高了代码的复用性和可读性(2)提高了代码的安全性 二、泛型的定义1、泛型类2、泛型接口3、泛型方法 三、泛型通配符1、?和T有什么区别2、通配符的分…...
Vue+OpenLayers7入门到实战:在地图上添加缩放控件、比例尺控件和鼠标经纬度位置显示控件
返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章主要介绍如何使用OpenLayers7在地图上添加地图缩放控件,比例尺显示控件和鼠标经纬度位置展示控件这三个Control控件。 二、依赖和使用 "ol": "7.5.2"使用npm安装依赖npm install ol@7.5.…...
极简生活|可以慢慢变富的8个习惯
哈喽,大家好啊,我是雷工! 巴菲特巴老爷子曾经多次指出: 大多数投资者的问题就在于不愿意慢慢变富。 可是大多数人都急于一夜暴富,于是乎那么多的追涨杀跌,不断上演,越急功近利反而越损失惨重。 …...
MySQL基础(一)
学习数据库的目的: 实现数据持久化到本地。使用完整的管理系统统一管理,可以实现结构化查询,方便管理。 一、数据库概述 数据库(DataBase) 为了方便数据的存储和管理,它将数据按照特定的 规则存储在磁盘…...
【Linux编译器-gcc/g++使用】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 设计样例,先见一下 方案一: 方案二: 在企业里面一般维护软件的源代码的话,要维护几份? 方案一&…...
SQL提示与索引终章
✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL-进阶篇 📜 感谢大家的关注! ❤️ 可以关注黑马IT,进行学习 目录 🚀SQL提示 🚀覆盖索引 🚀前缀索引 &…...
基于OpenSSL的SSL/TLS加密套件全解析
概述 SSL/TLS握手时,客户端与服务端协商加密套件是很重要的一个步骤,协商出加密套件后才能继续完成后续的握手和加密通信。而现在SSL/TLS协议通信的实现,基本都是通过OpenSSL开源库,本文章就主要介绍下加密套件的含义以及如何在O…...
01-echarts如何绘制三维折线图
echarts如何绘制三维折线图 一、相关依赖包1、下载依赖2、引入依赖 二、创建图表盒子1、创建盒子2、定义数据3、编写方法1、初始化盒子2、设置配置项3、修改数据格式4、设置颜色数组4、设置name数组5、设置线三维和点三维6、添加配置项7、设置图表自适应 4、调用方法 三、整体代…...
Linux-共享内存
文章目录 前言一、system V共享内存申请共享内存挂载共享内存删除共享内存挂载删除共享内存 二、示例代码三.运行效果 前言 在这之前我们已经学习了两种进程间通信方式:匿名管道和命名管道。 从我们之前的学习已经知道,想让多个进程间进行通信就需要让他…...
深入分析 Linux 网络丢包问题
热门IT课程【视频教程】-华为/思科/红帽/oraclehttps://xmws-it.blog.csdn.net/article/details/134398330 所谓丢包,是指在网络数据的收发过程中,由于种种原因,数据包还没传输到应用程序中,就被丢弃了。这些被丢弃包的数量&#…...
web安全学习笔记【08】——算法1
思维导图在最后 #知识点: 1、Web常规-系统&中间件&数据库&源码等 2、Web其他-前后端&软件&Docker&分配站等 3、Web拓展-CDN&WAF&OSS&反向&负载均衡等 ----------------------------------- 1、APP架构-封装&原生态&…...
2024最新版Python 3.12.1安装使用指南
2024最新版Python 3.12.1安装使用指南 Installation and Configuration Guide to the latest version Python 3.12.1 in 2024 By Jackson Python编程语言,已经成为全球最受欢迎的编程语言之一;它简单易学易用,以标准库和功能强大且广泛外挂…...
Oracle 经典练习题 50 题
文章目录 一 CreateTable二 练习题1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4 查询平均成绩小于…...
PyTorch的衍生资源
PyTorch作为深度学习领域的一个重要框架,自2016年首次发布以来经历了显著的发展。以下是PyTorch发展过程中的几个关键里程碑事件: 2016年: PyTorch于2016年首次发布,作为一个基于动态计算图的开源机器学习库,它提供了自…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
