当前位置: 首页 > news >正文

负载均衡中间件---Nginx

一.nginx的好处

学习 Nginx 对于一个全栈开发者来说是非常有价值的,下面是一些学习 Nginx 的原因和好处:

  1. 反向代理和负载均衡:Nginx 是一个高性能的反向代理服务器,可以用于将客户端请求转发给多个后端服务器,实现负载均衡。学习 Nginx 可以让您了解如何配置和管理反向代理和负载均衡,以提高应用程序的性能和可靠性。
  2. 静态文件服务:Nginx 可以用作静态文件服务器,可以帮助您有效地提供网站中的静态资源,如 HTML、CSS、JavaScript 和图像文件。学习 Nginx 可以了解如何配置和优化 Nginx 以提供静态文件,并实现网站的快速加载。
  3. 缓存和加速:Nginx 具有强大的缓存功能,可以缓存动态内容以提高响应速度,并减轻后端服务器的负载。学习 Nginx 的缓存功能可以帮助您改善网页响应时间,提高用户体验。
  4. 安全性和访问控制:Nginx 提供了许多安全性和访问控制功能,例如 SSL/TLS 加密、基于 IP 地址的访问控制、访问日志记录等。学习 Nginx 可以帮助您保护您的应用程序免受潜在的安全漏洞和恶意攻击。
  5. 高可用性和容错性:通过 Nginx 的高可用性和容错性特性,您可以实现应用程序的无缝扩展和故障恢复。学习 Nginx 可以帮助您了解如何配置和管理多个 Nginx 实例,以实现高可用性架构和容错机制。
  6. 设置虚拟主机:使用 Nginx,您可以设置和管理多个虚拟主机,即在同一台服务器上托管多个网站。学习 Nginx 可以帮助您了解如何配置和管理虚拟主机,以满足不同网站的需求。

总的来说,学习 Nginx 可以为您提供更强大的工具和技能,以管理和优化您的应用程序和网站。它可以提供更好的性能、可靠性、安全性和扩展性,对于开发和部署现代 Web 应用程序非常有帮助。

二.niginx的安装

以下的操作之前,请将防火墙进行关闭

  • 关闭防火墙
systemctl stop firewalld.service
  • 禁止防火墙开机启动
systemctl disable firewalld.service
  • 放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 重启防火墙
firewall-cmd --reload

ubantu系统安装

我的是ubantu系统要在Ubuntu系统上下载和安装Nginx,可以按照以下步骤进行操作:

  1. 打开终端:您可以使用快捷键Ctrl+Alt+T打开终端。
  2. 更新软件源:运行以下命令以更新软件源和包列表:
   sudo apt update
  1. 安装Nginx:运行以下命令以安装Nginx:
   sudo apt install nginx

需要输入sudo用户密码以及确认安装。

  1. 启动Nginx服务:安装完成后,Nginx服务将自动启动。如果未启动,您可以运行以下命令手动启动:
sudo systemctl start nginx
  1. 验证安装:打开您的Web浏览器,输入服务器的IP地址或域名,如果看到Nginx默认欢迎页面,说明Nginx已成功安装。
    以下是在Ubuntu上安装Nginx时的常见文件路径:

  2. Nginx的配置文件目录: /etc/nginx

  3. 主配置文件:/etc/nginx/nginx.conf

  4. 网站配置文件目录:/etc/nginx/sites-available/ (网站配置文件通常位于此目录中)

  5. 网站启用配置文件目录:/etc/nginx/sites-enabled/ (已启用的网站配置文件通常位于此目录中)

  6. Nginx的网站根目录: /var/www/html
    这是默认情况下Nginx在Ubuntu上用于存储网站文件的根目录。

  7. Nginx的日志文件目录: /var/log/nginx

  8. 访问日志文件:/var/log/nginx/access.log
    8 .错误日志文件:/var/log/nginx/error.log

这时候,打开web localhost:80
在这里插入图片描述
就是安装成功

centos安装

要在CentOS上安装Nginx,可以按照以下步骤进行操作:

  1. 打开终端并使用root用户或具有sudo权限的用户登录到CentOS服务器。
  2. 运行以下命令以更新服务器上的软件包列表:
 sudo yum update
  1. 安装Nginx软件包。运行以下命令:
  sudo yum install nginx

在安装过程中,系统将要求您确认安装。键入“y”并按回车键继续。

4.安装完成后,可以启动Nginx服务。运行以下命令:

  sudo systemctl enable nginxsudo systemctl start nginx

这将启动Nginx,并将其配置为在系统引导时自动启动。
至于Nginx的文件位置,以下是一些重要的文件和目录:

  1. Nginx的配置文件目录: /etc/nginx
  2. 主配置文件:/etc/nginx/nginx.conf
  3. 网站配置文件目录:/etc/nginx/conf.d/
  4. 默认站点配置文件:/etc/nginx/conf.d/default.conf
  5. Nginx的网站根目录: /usr/share/nginx/html
    这是默认情况下Nginx用于存储网站文件的根目录。在此目录下,您可以将相应的网站文件和目录放置在适当的位置。
  6. Nginx的日志文件目录: /var/log/nginx
  7. 访问日志文件:/var/log/nginx/access.log
  8. 错误日志文件:/var/log/nginx/error.log

如果觉得麻烦,各个文件太分散了可以编译安装

编译安装

如果您希望将安装的Nginx文件集中在同一个文件夹中,而不是默认的分散位置,可以使用源代码编译安装的方式进行操作。以下是在Ubuntu上将Nginx源代码编译安装到指定文件夹的步骤:

  • 首先,确保您的Ubuntu系统已安装编译Nginx所需的构建工具和依赖项。打开终端,运行以下命令以安装必要的软件包:
sudo apt update
sudo apt install build-essential zlib1g-dev libpcre3-dev libssl-dev
  • 下载Nginx的源代码包。您可以从Nginx官方网站(https://nginx.org/en/download.html)获取最新的稳定版本的源代码包,或者使用以下命令下载特定版本的源代码(请将<version>替换为您所需的版本):
wget http://nginx.org/download/nginx-<version>.tar.gz
  • 解压源代码包。运行以下命令解压下载的源代码包:
tar -zxvf nginx-<version>.tar.gz
  • 进入解压后的源代码目录:
cd nginx-<version>

配置编译选项并指定安装路径。运行以下命令,将Nginx安装到指定的文件夹中,例如

./configure --prefix=/usr/local/nginx
  • 执行编译和安装命令:
    在这里插入图片描述
make
sudo make install

这将会编译Nginx并将其安装到指定的文件夹。

  • 进入安装好的目录 /usr/local/nginx/sbin
    没有权限的加sudo
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置

此时可以再次访问nginx欢迎页面在这里插入图片描述
这种方式bash运行,接下来编辑脚本运行

编写脚本

创建服务脚本

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

启动服务

systemctl start nginx.service

开机启动

systemctl enable nginx.service

完成以后就无序在特定路径使用sh脚本启动了

卸载

因为之前为了演示演示指令网络安装,所以是默认的文件路径这样很不方便,所以采用编译安装,先卸载之前安装的
如果您使用 yum 在 CentOS 或者基于 Red Hat 的发行版上安装了 Nginx,可以使用以下命令卸载它:

sudo yum remove nginx

这将从系统中删除 Nginx 及其关联的软件包和配置文件。
如果您使用 apt 在 Ubuntu 或者基于 Debian 的发行版上安装了 Nginx,使用以下命令卸载它:

sudo apt remove nginx

在这里插入图片描述
根据提示卸载完成后就不会在启动了
在这里插入图片描述

这将删除 Nginx 及其关联的软件包和配置文件。
无论使用 yum 还是 apt 进行安装,remove 命令会删除软件包和配置文件,但是不会删除已经在安装期间创建的用户和组。
如果您希望同时删除 Nginx 创建的用户和组,可以使用 purge 命令:

sudo apt purge nginx    # Ubuntu/Debian
sudo yum remove --purge nginx   # CentOS/RHEL

这会完全卸载 Nginx,包括软件包、配置文件以及与之关联的用户和组。请注意,卸载 Nginx 不会删除网站根目录或日志文件等用户生成的数据,需要手动删除这些文件。

根据提示删除成功后再次访问web页面是无法到欢迎页面的

编译卸载

如果通过编译源代码的方式安装了 Nginx,可以按照以下步骤来卸载它:

  1. 进入到之前编译安装 Nginx 的源代码目录,一般是您下载和解压 Nginx 源代码的目录。
  2. 在该目录下运行以下命令,以删除之前安装的 Nginx 程序和文件:
 sudo make uninstall

这将会执行之前编译安装过程中生成的 uninstall 脚本来删除已安装的文件和程序。

3 .手动删除 Nginx 配置文件、网站文件和日志文件等其他可能的残留文件。这些文件的位置和名称取决于您在配置编译选项时所设置的内容。
默认情况下,编译安装的 Nginx 的安装目录为 /usr/local/nginx/,您可以执行以下命令以删除该目录及其内容:

sudo rm -rf /usr/local/nginx/

请注意,执行 make uninstall 命令前,请确保您在之前编译安装 Nginx 源代码时使用了 make install 命令。
通过执行以上步骤,您应该能够从系统中完全卸载编译安装的 Nginx。但请注意,在卸载过程中可能会删除您自定义的配置文件和其他数据文件,因此请谨慎操作,并备份您重要的数据文件。

三.nginx的基本使用

3.1目录结构

进入之前安装的nginx目录
在这里插入图片描述
有三个重要的文件

conf

用来存放配置文件相关,nginx.config 配置功能都是在这里面做,然后调用外部的配置文件
在这里插入图片描述

html

用来存放静态文件的默认目录 html、css等
在这里插入图片描述
一开始进入的欢迎页就是这里的index

sbin

nginx的主程序

其他的重要的
比如logs 存放log日志其中的pid存放线程id
在这里插入图片描述

在这里插入图片描述
用于杀死线程

3.2运行原理

在这里插入图片描述
通过查看线程,nginx启动后启动多个进程,我们发现,master只是用于读取配置文件进行结构化协调,worker进行请求处理工作
在这里插入图片描述

3.3(必须掌握)nginx的配置文件

2023.9.20 停笔 明日课后继续

相关文章:

负载均衡中间件---Nginx

一.nginx的好处 学习 Nginx 对于一个全栈开发者来说是非常有价值的&#xff0c;下面是一些学习 Nginx 的原因和好处&#xff1a; 反向代理和负载均衡&#xff1a;Nginx 是一个高性能的反向代理服务器&#xff0c;可以用于将客户端请求转发给多个后端服务器&#xff0c;实现负…...

Linux硬链接、软链接

硬链接是一个目录条目(在基于目录的文件系统中)&#xff0c;它将一个名称与一个文件关联起来。因此&#xff0c;每个文件必须至少有一个硬链接。为文件创建额外的硬链接可以使该文件的内容可以通过额外的路径访问(即通过不同的名称或在不同的目录中)这会导致别名效应(alias eff…...

React面试题总结(一)

1、redux本来是同步的&#xff0c;为什么它能执行异步代码&#xff1f;实现原理是什么&#xff1f;中间件的实现原理是什么&#xff1f; 1、Redux-thunk这个中间件支持异步操作 2、执行异步的操作首先需要下载一个thunk&#xff0c;通过thunk来进行异步的一个操作&#xff0c;支…...

一句话设计模式12:适配器模式

适配器模式: 继承原对象,持有目标对象; 文章目录 适配器模式: 继承原对象,持有目标对象;前言一、适配器模式的作用二、如何适配器模式直接上代码 总结 前言 适配器模式一般使用场景是: 将一个类(接口)转换成客户希望的另外一个类(接口)。其中适配器充当一个假的原类的作用; 一…...

iOS加固保护技术:保护你的iOS应用免受恶意篡改

目录 转载&#xff1a;开始使用ipaguard 前言 下载ipa代码混淆保护工具 获取ipaguard登录码 代码混淆 文件混淆 IPA重签名与安装测试 转载&#xff1a;开始使用ipaguard 前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术&#xff0c;可以对iOS APP中的可执行文件…...

阿里云产品试用系列-云桌面电脑

无影云电脑&#xff08;WUYING Workspace&#xff09;&#xff0c;是一种易用、安全、高效的云上桌面服务。它支持快速便捷的桌面环境创建、部署、统一管控与运维。无需前期传统硬件投资&#xff0c;帮您快速构建安全、高性能、低成本的企业桌面办公体系。可广泛应用于具有高数…...

vue3使用vue-virtual-scroller虚拟滚动遇到的问题

安装和使用 见官方文档&#xff1a;https://github.com/Akryum/vue-virtual-scroller/tree/master/packages/vue-virtual-scroller 如何获取子组件的实例 背景 本来正常情况下&#xff0c;要获取v-for渲染的子组件的实例&#xff0c;通过ref绑定即可获取到数组&#xff0c;并…...

c#用Gnuplot画图源码

直接调用这个类即可&#xff0c;需要下载个GnuPlot安装下。 // Author: Leonardo Tazziniusing System; using System.Diagnostics; using System.Drawing; using System.IO; using System.Windows.Forms;/// <summary> /// Tested with Gnuplot 5.2 /// </summary&g…...

【前端设计模式】之工厂模式

工厂模式特性 工厂模式是一种创建对象的设计模式&#xff0c;它通过使用工厂类来封装对象的创建逻辑&#xff0c;隐藏了具体对象的实例化过程。工厂模式的主要特性包括&#xff1a; 封装对象的创建过程&#xff1a;工厂模式将对象的创建过程封装在一个工厂类中&#xff0c;客…...

Hive 的函数介绍

目录 ​编辑 一、内置运算符 1.1 关系运算符 1.2算术运算符 1.3逻辑运算符 1.4复杂类型函数 1.5对复杂类型函数操作 二、内置函数 2.1数学函数 2.2收集函数 2.3类型转换函数 2.4日期函数 2.5条件函数 2.6字符函数 三、内置的聚合函数 四、内置表生成函数 五、…...

【Linux基础】第31讲 Linux用户和用户组权限控制命令(三)

用户组管理命令 每个用户都有一个用户组&#xff0c;系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同。如Linux下的用户属于与它同名的用户组&#xff0c;这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组…...

html form表单高级用法

场景&#xff1a;想单纯使用表单内置的api完成提交&#xff0c;不使用js代码 代码如下&#xff1a; <form name"myForm" action"http://localhost:13734/form" method"post"><label>用户名<input type"text" name&qu…...

openssl升级

参考 https://www.cnblogs.com/shareHistory/p/15850707.html 下载并安装依赖 wget https://www.openssl.org/source/openssl-3.0.5.tar.gz yum -y install perl-IPC-Cmd编译安装 ./config -Wl,-rpath/usr/local/openssl/lib -fPIC --prefix/usr/local/openssl --openssldir…...

【数据结构】图的遍历:广度优先(BFS),深度优先(DFS)

目录 1、广度优先&#xff08;BFS&#xff09; 算法思想 广度优先生成树 知识树 代码实现 2、深度优先&#xff08;DFS&#xff09; 算法思想 深度优先生成树 知识树 代码实现 1、广度优先&#xff08;BFS&#xff09; 算法思想 图的广度优先遍历&#xff0…...

Mysql 学习总结(89)—— Mysql 库表容量统计

前言 统计每个库每个表的大小是数据治理中最简单的一个要求,下面从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况。mysql 数据字典库 information_schema 里记录了统计的预估数据量(innodb 引擎表不准确,MyISAM 引擎表准确)及数据大小、索引大小及…...

virtualBox安装配置使用

virtualBox下载 //官网下载地址 https://www.virtualbox.org/wiki/Downloads ​ //ubuntu下载地址 https://cn.ubuntu.com/download/server/step1 virtualBox使用 导入现有镜像 &#xff08;如果报错可以降低系统配置&#xff0c;因为有些主机可能不支持高配置&#xff0c;例如…...

北斗导航 | RTD、RTK完好性之B值、VPL与HPL计算(附B值计算matlab源代码)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 1、S矩阵获取 为第i颗卫星测距标准差:...

more often than not 的含义

今天听https://www.bilibili.com/video/BV1w94y12727/?p2&spm_id_frompageDriver more often than not 连读:mor ofen than au 想了半天不动什么意思. 查了一下表示大部分情况下. 还是不理解为什么, 就查了必应里面的词典. 表示超过一半的情况下. 又自己想了想突然懂了.…...

【Linux】Linux环境配置安装

目录 一、双系统&#xff08;特别不推荐&#xff09; 安装双系统的缺点&#xff1a; 安装双系统优点&#xff08;仅限老手&#xff09;&#xff1a; 二、虚拟机centos7镜像&#xff08;较为推荐推荐&#xff09; 虚拟机的优点&#xff1a; 虚拟机的缺点&#xff1a; ​ …...

从零学习开发一个RISC-V操作系统(二)丨GCC编译器和ELF格式

本篇文章的内容 一、GCC&#xff08;GUN Compiler Collection&#xff09;1.1 GCC的命令格式1.2 GCC的主要执行步骤1.3 GCC涉及的文件类型 二、ELF简介2.1 ELF文件格式图2.2 ELF文件处理的相关工具2.3 练习 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记&…...

论文阅读_大语言模型_Llama2

英文名称: Llama 2: Open Foundation and Fine-Tuned Chat Models 中文名称: Llama 2&#xff1a;开源的基础模型和微调的聊天模型 文章: http://arxiv.org/abs/2307.09288 代码: https://github.com/facebookresearch/llama 作者: Hugo Touvron 日期: 2023-07-19 引用次数: 11…...

当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估中的应用及论文写作、拓展分析

生态系统服务是人类从自然界中获得的直接或间接惠益&#xff0c;可分为供给服务、文化服务、调节服务和支持服务4类&#xff0c;对提升人类福祉具有重大意义&#xff0c;且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目&#xff08;Millennium Ecosystem Asse…...

k8s Limits 限制内存

Limits 限制内存 在 Kubernetes (K8s) 中&#xff0c;可以使用 Limits&#xff08;资源限制&#xff09;来限制 Pod&#xff08;容器&#xff09;使用的内存数量。此处的 Limits 表示 Pod 在 K8s 集群中可用的最大内存量。一旦 Pod 内存使用超过这个限制&#xff0c;可能会触发…...

单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元

目录 1&#xff0c;开发板原理图 2&#xff0c;浮点运算单元&#xff08;FPU&#xff09; 1&#xff0c;开发板原理图 课程视频比较早&#xff0c;介绍了三款开发板。观看视频时用的开发板说和51单片机共板的STM32核心板&#xff0c;将51单片机从底座拆下来后&#xff0c;安…...

观察者模式 发布-订阅模式(设计模式与开发实践 P8)

文章目录 观察者模式运用实现 观察者模式 定义&#xff1a;他用来定义对象之间一种一对多的依赖关系&#xff0c;当一个对象状态发生改变时&#xff0c;所有依赖他的对象都会得到通知 运用 如果我们使用过 DOM 上的事件函数&#xff0c;那就接触过观察者模式 document.body…...

【日常业务开发】Java实现异步编程

【日常业务开发】Java实现异步编程 Java实现异步编程什么是异步异步的八种实现方式异步编程线程异步Future异步CompletableFuture实现异步Spring的Async异步Spring ApplicationEvent事件实现异步消息队列ThreadUtil异步工具类Guava异步 CompletableFuture异步编排工具类创建异步…...

学习笔记|模数转换器|ADC原理|STC32G单片机视频开发教程(冲哥)|第十七集:ADC采集

文章目录 1.模数转换器&#xff08;ADC&#xff09;是什么&#xff1f;手册说明&#xff1a; 2.STC32G单片机ADC使用原理19.1.1 ADC控制寄存器&#xff08;ADC_CONTR)19.1.2 ADC配置寄存器&#xff08;ADCCFG)19.1.4ADC时序控制寄存器&#xff08;ADCTIM&#xff09;19.3 ADC相…...

OpenCV实现“蓝线挑战“特效

原理 算法原理可以分为三个流程&#xff1a; 1、将视频&#xff08;图像&#xff09;从&#xff08;顶->底&#xff09;或&#xff08;左->右&#xff09;逐行&#xff08;列&#xff09;扫描图像。 2、将扫描完成的行&#xff08;列&#xff09;像素重新生成定格图像…...

容器管理工具 Docker生态架构及部署

目录 一、Docker生态架构 1.1 Docker Containers Are Everywhere 1.2 生态架构 1.2.1 Docker Host 1.2.2 Docker daemon 1.2.3 Registry 1.2.4 Docker client 1.2.5 Image 1.2.6 Container 1.2.7 Docker Dashboard 1.3 Docker版本 二、Docker部署 2.1 使用YUM源部署…...

js判断数据类型的方法

简单数据类型用&#xff1a;typeof&#xff0c; // 可以直接typeof空格接数据的方式,也可以typeof(数据)的方式使用 console.log(typeof ""); //string(检验字符串没问题) console.log(typeof 1); //number(检验数字没问题) console.log(typ…...

2019年做网站还有机会吗/制造业中小微企业

Determine file-access permission.int _access( const char *path, int mode );声明于 io.h #include <io.h> C _access和_waccess的使用方法 概述 头文件&#xff1a;<io.h> 判断文件的访问权限 原型 int _access( const char *path, int mode ); i…...

网站可以做的线下活动/百度搜索热度排名

安装nodejs 安装npm 安装express npm install -g express 安装express生成器 npm install -g express-generator 查看express帮助 express --help 创建express项目文件夹 express创建项目默认为jade模板引擎&#xff0c;若使用其他引擎&#xff0c;使用命令切换 express -e …...

如何维护网站的运营/大数据营销的案例

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>陕西师范大学的简称是“陕师大”&#xff0c;这是一所位于陕西西安的公办师范大学&#xff0c;目前由我国教育部直接管理。那么&#xff0c;陕师大是好学校吗&#xff1f;陕师大出来好…...

企业管理咨询报告案例/北京seo供应商

localhost变更为ip地址原因 移动端的开发页面想要在手机端查看&#xff0c;使用localhost是无法查看的只有使用IP地址才可以通过本机IP访问该页面&#xff0c;查看页面效果 变更方法 查看本机 IP 地址 调出cmd命令行&#xff0c;输入cmd按enter键 输入ipconfig 获取本机i…...

扶风做企业网站/郑州优化公司有哪些

关于设置多个折线图时&#xff0c;y轴的数据对不上问题还原问题解析解决方案博主微信欢迎交流问题还原 问题解析 我们可以看到三条线的数据是10,30,20但是y轴的数据跟显示的对不上 解决方案 把stack注释掉即可 博主微信欢迎交流...

丹东做网站的公司/外贸网站优化推广

最近有位win7系统用户反映&#xff0c;自己桌面上的程序图标非常多&#xff0c;看着很乱&#xff0c;所以想要将它们排列整齐一些&#xff0c;但是却不知道怎么操作&#xff0c;那么win7电脑桌面图标排列方式怎么设置呢?今天为大家分享win7电脑桌面图标排列方式设置方法。桌面…...