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

Nginx从安装到使用,反向代理,负载均衡

什么是Nginx?

文章目录

  • 什么是Nginx?
    • 1、Nginx概述
      • 1.1、Nginx介绍
      • 1.2、Nginx下载和安装
      • 1.3、Nginx目录结构
    • 2、Nginx命令
      • 2.1、查看版本
      • 2.2、检查配置文件正确性
      • 2.3、启动和停止
      • 2.4、重新加载配置文件
      • 2.5、环境变量的配置
    • 3、Nginx配置文件结构
    • 4、Nginx具体应用
      • 4.1、部署静态资源
      • 4.2、反向代理
      • 4.3、负载均衡

1、Nginx概述

1.1、Nginx介绍

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文: Paw6nep)开发的,第一个公开版本0.1.0发布于2004年10月4日。

官网: https://nginx.org/

image-20230905101718900

1.2、Nginx下载和安装

  • 下载:

可以到Nginx官方网站下载Nginx的安装包,地址为: https://nginx.org/en/download.html

image-20230905102005083

  • 安装:
安装过程:
1、安装依赖包:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2、下载Nginx安装包:wget https://nginx.org/download/nginx-1.16.1.tar.gz(也可以在Windows中下载之后进行上传)
3、解压:tar -zxvf nginx-1.16.1.tar.gz
4、进入解压目录:cd nginx-1.16.1
5、指定安装路径,并进行检查和配置:./configure --prefix=/usr/local/nginx 
(提前创建/usr/local/nginx目录:mkdir -p /usr/local/nginx)
6、正式安装:make && make install 

1.3、Nginx目录结构

重点目录/文件:

目录作用
conf/nginx.confnginx配置文件
html存放静态文件(html、css、Js等)
logs日志目录,存放日志文件
sbin/nginx二进制文件,用于启动、停止Nginx服务

image-20230905105719125

树形结构展示nginx目录:

image-20230905110119984

2、Nginx命令

2.1、查看版本

./nginx -v

image-20230905110644023

使用上述命令的时候要切换到sbin目录下。

2.2、检查配置文件正确性

在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:

./nginx -t

image-20230905110831999

2.3、启动和停止

启动Nginx服务使用如下命令:

./nginx

停止Nginx服务使用如下命令:

./nginx -s stop

启动完成后可以查看Nginx进程:

ps -ef| grep nginx

2.4、重新加载配置文件

当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:

./nginx -s reload

2.5、环境变量的配置

在/etc/profile配置文件下追加下面的路径:

image-20230905201929128

3、Nginx配置文件结构

整体结构:

Nginx配置文件(conf/nginx.conf)整体分为三部分:

  • 全局块:和Nginx运行相关的全局配置
  • events块:和网络连接相关的配置
  • http块:代理、缓存、日志记录、虚拟主机配置
    • http全局块
    • Server块
      • Server全局块
      • location块

image-20230905203621133

注意: http块中可以配置多个Server块,每个Server块中可以配置多个location块。

4、Nginx具体应用

4.1、部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的html页面、css文件、js文件、图片、视频等资源。

相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可.

端口等设置的简介如下:

image-20230905205450743

4.2、反向代理

  • 正向代理
    是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。

正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

image-20230905210843270

  • 反向代理
    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器

用户不需要知道目标服务器的地址,也无须在用户端作任何设定。(无感知,而正向是知道服务器在哪的)

image-20230905211150349

  • 反向代理的配置

image

如上图设置反向代理之后,在本机82端口中的请求会被代理到192.168.138.101:8080的服务器中。

4.3、负载均衡

早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。

  • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
  • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

image-20230905213410721

  • 负载均衡的配置

image-20230905214255465

负载均衡的策略:

名称说明
轮询默认方式
weight权重方式(数值越大分发到的几率越大)
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式

image-20230905214521561

相关文章:

Nginx从安装到使用,反向代理,负载均衡

什么是Nginx? 文章目录 什么是Nginx?1、Nginx概述1.1、Nginx介绍1.2、Nginx下载和安装1.3、Nginx目录结构 2、Nginx命令2.1、查看版本2.2、检查配置文件正确性2.3、启动和停止2.4、重新加载配置文件2.5、环境变量的配置 3、Nginx配置文件结构4、Nginx具体…...

freertos之资源管理

中断屏蔽 屏蔽中断函数 在任务中使用 taskENTER_CRITICA()/taskEXIT_CRITICAL() 在中断中使用 taskENTER_CRITICAL_FROM_ISR()/taskEXIT_CRITICAL_FROM_ISR() 功能介绍 使用上述函数,进入临界中断,任务不会切换,且中断优先级处于con…...

1.创建项目(wpf视觉项目)

目录 前言本章环境创建项目启动项目可执行文件 前言 本项目主要开发为视觉应用,项目包含(视觉编程halcon的应用,会引入handycontrol组件库,工具库Masuit.Tools.Net,数据库工具sqlSugar等应用) 后续如果还有…...

使用element-ui导航,进入对应的三级页面菜单保持点击状态

1.注意事项 01.路由中使用了keepAlive属性&#xff0c;要用keepAlive&#xff1a;true&#xff0c;不能等于false&#xff0c;使用false页面会刷新 2.使用的方法 NavMenu 导航菜单 3.项目实例 <template><div class"policy-home"><div class"…...

golang字符串转64位整数

在Go语言中&#xff0c;可以使用strconv包中的ParseInt函数将字符串转换为64位整数。以下是一个示例代码&#xff1a; package main import ( "fmt" "strconv" ) func main() { str : "12345" num, err : strconv.ParseInt(str, 10, 64…...

创作纪念日-我的第1024天

机缘 不知不觉已经成为创作者的第1024天啦… … 刚开始接触博客的初衷就是为了记笔记&#x1f4d2;、记总结&#x1f4dd;&#xff0c;或许对于当时就等同于是为了找工作。坚持学习并持续输出博客一年后&#xff0c;这时我发现再写博客&#xff0c;不在是为了找一份工作&…...

【线上问题】很抱歉,如果没有 JavaScript 支持,将不能正常工作

目录 一、问题说明二、解决方式 一、问题说明 1.修改了nginx的配置 2.postman调用接口正常&#xff0c;浏览器访问接口200&#xff0c;但无数据 3.浏览器访问&#xff0c;nginx没有访问记录&#xff0c;接口请求到不了应用服务 4.原因不祥 二、解决方式 1.清理了浏览器缓存...

便捷、快速、稳定、高性能!以 GPU 实例演示 Alibaba Cloud Linux 3 对 AI 生态的支持 | 龙蜥技术

编者按&#xff1a;日前&#xff0c;Alibaba Cloud Linux 3 为使 AI 开发体验更高效&#xff0c;提供了一些优化升级&#xff0c;本文为“Alibaba Cloud Linux 3 AI 能力介绍”系列文章预告篇&#xff0c;以 GPU 实例为例&#xff0c;为大家演示 Alibaba Cloud Linux 3 对 AI 生…...

创新科技改变城市:智慧城市建设全景展望

在当今科技飞速发展的时代&#xff0c;智慧城市的概念已经成为城市发展的新趋势&#xff0c;为人们的生活带来了前所未有的便利和改变。智慧城市&#xff0c;顾名思义&#xff0c;是以先进的信息技术为基础&#xff0c;通过数字化、互联网化和智能化手段&#xff0c;实现城市基…...

Kotlin 环境下解决属性初始化问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

Java复习-20-接口(3)- 代理设计模式

代理设计模式(Proxy) 功能&#xff1a;可以帮助用户将所有的开发注意力只集中在核心业务功能的处理上。 代理模式(Proxy Pattern)是一种结构性模式。代理模式为一个对象提供了一个替身&#xff0c;以控制对这个对象的访问。即通过代理对象访问目标目标对象&#xff0c;可以在目…...

如何远程访问Linux MeterSphere一站式开源持续测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…...

LinuxUbuntu安装OpenWAF

Linux&Ubuntu安装OpenWAF 官方GitHub地址 介绍 OpenWAF&#xff08;Web Application Firewall&#xff09;是一个开源的Web应用防火墙&#xff0c;用于保护Web应用程序免受各种网络攻击。它通过与Web服务器集成&#xff0c;监控和过滤对Web应用程序的流量&#xff0c;识…...

LeetCode 剑指offer 09.用两个栈实现队列

LeetCode 剑指offer 09.用两个栈实现队列 题目描述 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回…...

第三方软件检测机构有哪些资质,2023年软件测评公司推荐

软件第三方测试报告 伴随着软件行业的蓬勃发展&#xff0c;软件测试也迎来了热潮&#xff0c;但是国内的软件测试行业存在着测试入行门槛低、测试投入少、测试人员专业性不足等问题&#xff0c;这些问题不但会阻碍软件测试行业的良性发展&#xff0c;而且难以保证软件产品的质…...

Unity的GPUSkinning进一步介绍

大家好&#xff0c;我是阿赵。   在几年前&#xff0c;我曾经写过一篇介绍GPUSkinning的文章&#xff0c;这么多年之后&#xff0c;还是看到不停有朋友在翻看这篇旧文章。今天上去GitHub看了一下&#xff0c;GPUSkinning这个开源的插件已经很久没有更新过了&#xff0c;还是停…...

Mysql redolog

一、redolog 是啥 数据库的ACID&#xff1a;A原子性&#xff0c;C一致性&#xff0c;I隔离性&#xff0c;D持久性&#xff1b; redolog&#xff1a;保证 持久性&#xff1b; redolog: 系统奔溃重启时需要按照上述内容所记录的步骤重新更新数据页&#xff0c;特点&#xff1a…...

【设计模式】Head First 设计模式——桥模式 C++实现

设计模式最大的作用就是在变化和稳定中间寻找隔离点&#xff0c;然后分离它们&#xff0c;从而管理变化。将变化像小兔子一样关到笼子里&#xff0c;让它在笼子里随便跳&#xff0c;而不至于跳出来把你整个房间给污染掉。 设计思想 桥模式。将抽象部分(业务功能)与实现部分(平…...

CESM2代码下载

这半年忙着毕业写论文&#xff0c;好久好久好久不更新了∠( ω)&#xff0f; &#xff0c;今天准备开个新坑 ๑乛◡乛๑&#xff0c;学习一下CESM&#xff08;Community Earth System Model&#xff09;&#xff0c;它是一个完全耦合的全球气候模型&#xff0c;可用于地球过去、…...

编写OpenCL程序的基本步骤

opencl pyopencl OpenCL-Headers OpenCL(全称为Open Computing Langugae&#xff0c;开放运算语言)是第一个面向异构系统(此系统中可由CPU&#xff0c;GPU或其它类型的处理器架构组成)的并行编程的开放式标准。 它是跨平台的。 OpenCL由两部分组成&#xff0c;一是用于编写…...

一键部署雪女-斗罗大陆-造相Z-Turbo:小白也能轻松生成动漫女神

一键部署雪女-斗罗大陆-造相Z-Turbo&#xff1a;小白也能轻松生成动漫女神 1. 镜像简介与核心功能 1.1 什么是雪女-斗罗大陆-造相Z-Turbo 雪女-斗罗大陆-造相Z-Turbo是一款基于Xinference部署的文生图AI模型服务&#xff0c;专门用于生成斗罗大陆中雪女角色的高质量动漫图像…...

避坑指南:新到手的NUC 13装Ubuntu,WiFi驱动对了但图标不显示?可能是AX211网卡在Linux下的‘通病’

NUC 13安装Ubuntu后WiFi图标消失的深度排查与解决方案 刚拿到手的Intel NUC 13装上Ubuntu系统&#xff0c;WiFi驱动看似正常却不见图标&#xff1f;这可能是AX211网卡在Linux下的"通病"。作为一名长期与硬件兼容性问题打交道的技术顾问&#xff0c;我遇到过太多类似…...

5分钟终极指南:Windows虚拟手柄驱动ViGEmBus完整教程

5分钟终极指南&#xff1a;Windows虚拟手柄驱动ViGEmBus完整教程 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想要在Windows系统上享受专业级的游戏控制体…...

Python 批量导出数据库数据至 Excel 文件

简介 langchain专门用于构建LLM大语言模型&#xff0c;其中提供了大量的prompt模板&#xff0c;和组件&#xff0c;通过chain(链)的方式将流程连接起来&#xff0c;操作简单&#xff0c;开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...

intv_ai_mk11 GPU算力优化部署:7B模型在CSDN GPU实例上的高效运行方案

intv_ai_mk11 GPU算力优化部署&#xff1a;7B模型在CSDN GPU实例上的高效运行方案 1. 项目背景与价值 intv_ai_mk11是基于Llama架构的7B参数AI对话模型&#xff0c;专为中文场景优化设计。在CSDN GPU实例上部署这类中型模型时&#xff0c;面临的主要挑战是如何在有限显存条件…...

**发散创新:策略即代码——用 Rust实现动态权限控制引擎**在现代软件系统中,权限管理早已不是简单的“用

发散创新&#xff1a;策略即代码——用 Rust 实现动态权限控制引擎 在现代软件系统中&#xff0c;权限管理早已不是简单的“用户-角色-资源”映射。越来越多的业务场景要求我们具备灵活、可扩展、易维护的权限决策机制。传统硬编码方式难以应对频繁变更的业务规则&#xff0c;而…...

Qwen3.5-2B效果展示:儿童绘本图→识别角色/场景/情绪→生成故事续写+朗读脚本

Qwen3.5-2B效果展示&#xff1a;儿童绘本图→识别角色/场景/情绪→生成故事续写朗读脚本 1. 模型介绍 Qwen3.5-2B是通义千问团队推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这个模型特别适合在资源有限的设备上部…...

SPIRAN ART SUMMONER图像生成前端展示效果优化技巧

SPIRAN ART SUMMONER图像生成前端展示效果优化技巧 1. 引言 你有没有遇到过这种情况&#xff1a;用SPIRAN ART SUMMONER生成了超棒的图片&#xff0c;但在网站上展示时却加载缓慢&#xff0c;用户还没看到效果就流失了&#xff1f;或者图片显示不完整&#xff0c;影响了整体的…...

HUNYUAN-MT惊艳翻译效果:专业领域长文档翻译案例集

HUNYUAN-MT惊艳翻译效果&#xff1a;专业领域长文档翻译案例集 最近在尝试各种翻译工具时&#xff0c;我偶然间用到了HUNYUAN-MT 7B模型来处理一些工作上的专业文档。说实话&#xff0c;一开始没抱太大期望&#xff0c;毕竟专业翻译的门槛不低&#xff0c;尤其是那些充满术语和…...

MongoDB(70)如何使用副本集进行备份?

使用副本集进行备份是一个常见的MongoDB备份策略&#xff0c;因为副本集提供了数据冗余和高可用性。通过从副本集中读取数据&#xff0c;可以在不影响主节点的情况下进行备份。以下是详细的步骤和示例代码&#xff0c;展示如何使用 MongoDB 副本集进行备份。方法一&#xff1a;…...