Web开发:web服务器-Nginx的基础介绍(含AI文稿)
目录
一、Nginx的功能:
二、正向代理和反向代理的区别
三、Nginx负载均衡的主要功能
四、nginx安装目录下的各个文件(夹)的作用:
五、常用命令
一、Nginx的功能:
1.反向代理:例如我有三台服务器,Nginx可以作为代理服务器,转发用户的请求给这三台服务器,起到集中管理和优化流量分发的作用。
2.负债均衡:存在高级负载均衡策略,比如说哪个服务器内存大,动态优先让此台服务器处理用户请求,在服务器故障时自动将流量转移到健康的服务器。
3.内存小,支持高并发访问
4.可以作为静态资源服务器、缓存服务器。
二、正向代理和反向代理的区别
1.正向代理:
例如VPN,你的网络环境中存在一个正向代理服务器(墙),你无法直接访问外网。你可以连VPN,将你的请求先发送给VPN服务器(正向代理),由VPN服务器代表你向目标服务器发出请求,获取到服务器的响应后再返回给你。在这个过程中,目标服务器只能看到VPN服务器的IP地址,无法直接识别你的真实IP地址和位置信息。
2.反向代理
反向代理:例如Nginx中, 假设有一个网站部署了Nginx作为反向代理服务器。当客户端向这个网站发送请求时,请求会先到达Nginx服务器,Nginx根据预先配置的规则和负载均衡算法,将请求转发到后端的多个服务器(如应用服务器、数据库服务器等)。后端服务器处理完请求后,将结果返回给Nginx,再由Nginx将结果返回给客户端。对客户端来说,Nginx是唯一与之通信的服务器,客户端无法直接访问到后端的真实服务器。
3.总结:
流向不同:
正向代理的流程是客户端 -> 正向代理 -> 目标服务器。
反向代理的流程是客户端 -> 反向代理 -> 后端服务器。
目的不同:
正向代理的目的是代理客户端去访问其他资源,通常用于访问控制、身份隐藏等。
反向代理的目的是代理服务器来处理客户端的请求,通常用于负载均衡、缓存、安全保护等。
配置位置:
正向代理配置在客户端或客户端访问路径中。
反向代理配置在目标服务器和客户端之间,通常是在网络边界或应用服务器前。
三、Nginx负载均衡的主要功能
1. 轮询(Round-robin)
一种算法,它将每个请求按顺序分配到后端的不同服务器上,适用于每个服务器性能相近的场景。(假如三台服务器,那就123,123,123....)
nginx
upstream backend {server server1.example.com;server server2.example.com;server server3.example.com;
}
2. 加权轮询(Weighted Round-robin)
加权轮询允许为每个后端服务器分配一个权重值,权重值越高的服务器每轮接收到的请求越多。
nginx
upstream backend {server server1.example.com weight=3;server server2.example.com weight=2;server server3.example.com weight=1;
}
3. IP哈希(IP Hash)
基于客户端IP地址,将同一个客户端的所有请求发送到同一个后端服务器。这样可以确保同一客户端的会话保持在同一服务器上。(Session:维持登录状态)
nginx
upstream backend {ip_hash;server server1.example.com;server server2.example.com;server server3.example.com;
}
4. 动静分离(Static and Dynamic Content Separation)
将静态文件(如图片、CSS、JavaScript等)的请求和动态请求(如PHP、Python等脚本生成的页面)分发到不同的后端处理机制。通常,静态文件可以直接由Nginx处理并响应,而动态请求则转发给后端应用服务器处理。
nginx
server {listen 80;server_name example.com;location /static/ {root /var/www/;}location / {proxy_pass http://backend;}upstream backend {server backend-server1;server backend-server2;}
}
四、nginx安装目录下的各个文件(夹)的作用:
1.conf
2.contrib
3.docs
4.html
5.logs
6.temp
7.nginx.exe
1.conf:
这是 Nginx 的配置文件夹,包含了 Nginx 的各种配置文件。主要的配置文件是 nginx.conf,用于配置 Nginx 的全局设置、HTTP、服务器、位置等各种参数。
举例并且注释nginx.conf的内容:
# 全局配置
user nginx; # 设置 Nginx 进程运行的用户为 nginx 用户
worker_processes auto; # 自动设置工作进程数量,通常设置为 CPU 核心数
error_log /var/log/nginx/error.log; # 错误日志文件的路径
pid /var/run/nginx.pid; # Nginx 主进程的 PID 文件路径# events 配置
events {worker_connections 1024; # 每个工作进程允许的最大连接数
}# HTTP 配置
http {include mime.types; # 引入 MIME 类型配置文件default_type application/octet-stream; # 默认的 MIME 类型sendfile on; # 开启 sendfile 功能,提高文件传输效率keepalive_timeout 65; # 客户端连接的超时时间gzip on; # 开启 gzip 压缩# 定义后端服务器池upstream backend_servers {server backend1.example.com weight=5; # 第一个后端服务器,权重为 5server backend2.example.com:8080 max_fails=3 fail_timeout=30s; # 第二个后端服务器,指定端口和失败参数server unix:/tmp/backend3.sock; # 第三个后端服务器,使用 Unix 域套接字}# 服务器配置server {listen 80; # 监听 80 端口server_name example.com; # 服务器的域名为 example.comlocation / {root /usr/share/nginx/html; # 根目录位置index index.html index.htm; # 默认首页文件}location /api/ {proxy_pass http://backend_servers; # 请求转发到后端服务器池proxy_set_header Host $host; # 设置请求头 Hostproxy_set_header X-Real-IP $remote_addr; # 设置请求头 X-Real-IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置请求头 X-Forwarded-For}error_page 500 502 503 504 /50x.html; # 设置错误页的处理location = /50x.html {root /usr/share/nginx/html; # 错误页文件的位置}}
}
2.contrib:
contrib 文件夹通常包含一些额外的模块或者补丁,这些模块可能不是 Nginx 官方正式支持的,但提供了一些额外的功能或者实验性质的特性。
3.docs:文档手册
4.html:Nginx 默认的网站根目录
当通过 HTTP 访问服务器时,如果没有配置其他的虚拟主机或者站点,Nginx 将会服务于这个目录下的文件。
5.logs:日志文件
6.temp:
temp 文件夹通常用于存放临时文件,例如上传文件时的临时存储位置。这些文件一般在使用完毕后会被删除或者清理。
7.nginx.exe:
nginx.exe 是 Nginx 的可执行文件(在 Windows 上)。它是启动和管理 Nginx 服务的主要程序,通过执行这个文件可以启动、停止或重新加载 Nginx 的配置。
五、常用命令
1.启动和停止(stop 参数会立即停止 Nginx 进程,而 quit 参数会等待当前请求处理完成后再停止。)
nginx
nginx -s stop
2.安全退出
nginx -s quit
3.重新加载配置文件(使新的配置生效)
nginx -s reload
4.查看Nginx进程
ps aux | grep nginx
(以上部分内容由AI生成,部分内容参考其他博主,如有错误恳请指正)
相关文章:
Web开发:web服务器-Nginx的基础介绍(含AI文稿)
目录 一、Nginx的功能: 二、正向代理和反向代理的区别 三、Nginx负载均衡的主要功能 四、nginx安装目录下的各个文件(夹)的作用: 五、常用命令 一、Nginx的功能: 1.反向代理:例如我有三台服务器&#x…...
共享经济背景下校园、办公闲置物品交易平台-计算机毕设Java|springboot实战项目
🍊作者:计算机毕设残哥 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目、 源…...
Linux 服务器上简单配置 minio
Linux 服务器上简单配置 minio 初始化结构目录 mkdir -p /data/minio/bin mkdir -p /data/minio/conf mkdir -p /data/minio/data 下载 minio cd /data/minio/bin curl -O https://dl.min.io/server/minio/release/linux-amd64/minio 添加执行权限 chmod x minio 创建配置文件…...
TypeScript 面试题汇总
引言 TypeScript 是一种由微软开发的开源、跨平台的编程语言,它是 JavaScript 的超集,为 JavaScript 添加了静态类型系统和其他高级功能。随着 TypeScript 在前端开发领域的广泛应用,掌握 TypeScript 已经成为很多开发者必备的技能之一。本文…...
杰卡德系数
杰卡德系数(Jaccard Index 或 Jaccard Similarity Coefficient) 杰卡德系数是一种用于衡量两个集合相似度的重要指标。 从数学定义上来看,如前面所述,杰卡德系数计算公式为: J ( A , B ) ∣ A ∩ B ∣ ∣ A ∪ B ∣…...
微服务实现-sleuth+zipkin分布式链路追踪和nacos配置中心
1. sleuthzipkin分布式链路追踪 在大型系统的微服务化构建中,一个系统被拆分成了许多微服务。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。 这种架构中,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软…...
数学中常用的解题方法
文章目录 待定系数法应用示例1. 多项式除法2. 分式化简3. 数列通项公式 总结 递归数列特征方程特征根的求解通项公式的求解示例 错位相减,差分错位相减法差分的应用结合理解 韦达定理二项式定理二项式定理的通项公式二项式系数的性质应用示例 一元二次求解1. 因式分…...
pytorch 1 张量
张量 文章目录 张量torch.Tensor 的 主要属性torch.Tensor 的 其他常用属性和方法叶子张量(Leaf Tensors)定义叶子张量的约定深入理解示例代码总结 中间计算结果与 detach() 方法定义中间计算结果不是叶子节点使用 detach() 方法使中间结果成为叶子张量示…...
音视频开发继续学习
RGA模块 RGA模块定义 RGA模块是RV1126用于2D图像的裁剪、缩放、旋转、镜像、图片叠加等格式转换的模块。比方说:要把一个原分辨率1920 * 1080的视频压缩成1280 * 720的视频,此时就要用到RGA模块了。 RGA模块结构体定义 RGA区域属性结构体 imgType&am…...
【Datawhale X 魔搭 】AI夏令营第四期大模型方向,Task1:智能编程助手(持续更新)
在一个数据驱动的世界里,人工智能的未来应由每一个愿意学习和探索的人共同塑造和掌握。希望这里是你实现AI梦想的起点。 大模型小白入门:https://linklearner.com/activity/14/11/25 大模型开发工程师能力测试:https://linklearner.com/activ…...
如何判断监控设备是否支持语音对讲
目录 一、大华摄像机 二、海康摄像机 三、宇视摄像机 一、大华摄像机 注意:大华摄像机支持跨网语音对讲,即设备和服务器可以不在同一网络内,大华设备的语音通道填写:34020000001370000001 配置接入示例: 音频输入…...
Grafana+Influxdb(Prometheus)+Apache Jmeter搭建可视化性能测试监控平台
此性能测试监控平台,架构可以是: GrafanaInfluxdbJmeterGrafanaPrometheusJmeter Influxdb和Prometheus在这里都是时序性数据库 在测试环境中,压测数据对存储和持久化的要求不高,所以这里的组件可以都通过docker-compose.yml文件…...
【笔记】MSPM0G3507移植RT-Thread——MSPM0G3507与RT_Thread(二)
一.创建新工程 找到"driverlib\empty"空白工程,CTRLC然后CTRLV复制副本 重命名为G3507_RTT 打开KEIL工程 双击empty.syscfg,然后打开SYSCONFIG 我的不知道为啥没有48pin选项,如果你也一样,可以跟着我做,如果…...
计算机毕业设计 美发管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
soapui调用接口参数传递嵌套xml,多层CDATA表达形式验证
1.环境信息 开发工具:idea 接口测试工具:soapui 编程语言:java 项目环境:jdk1.8 webservice:jdk自带的jws 处理xml:jdk自带的jaxb 2.涉及代码 package org.example.webdemo;import javax.jws.WebMethod; i…...
GB/T35561-2017d,GB/T38565-2020,ocr解析文本
因系统需要只找到pdf版本,解析一版记录 GB/T35561-2017d 10000 , 自然灾害 10100 , 水旱灾害 10101 , 洪水 10102 , 内涝 10103 , 水库重大险情 10104 , 堤防重大险情 10105 , 凌汛 10106 , 山洪 10107 , 农业干旱 10108 , 城镇缺水 10109 , 生态干旱 10110 , 农村…...
IDEA使用LiveTemplate快速生成方法注释
本文目标:开发人员,在了解利用Live Template动态获取方法输入输出参数、创建日期时间方法的条件下,进行自动生成方法注释,达到自动添加方法注释的程度; 文章目录 1 场景2 要点2.1 新增LiveTemplate模版2.2 模版内容填写…...
慢SQL优化
1、避免使用select * select * 不会走覆盖索引,会出现大量的回表操作,从而导致查询sql的性能很低。 --反例 select * from user where id 1;--正例 select name,age from user where id 1;2、union all 代替 union union:去重后的数据…...
MES生产执行系统源码,支持 SaaS 多租户,技术架构:springboot + vue-element-plus-admin
MES的定义与功能 MES是制造业中一种重要的管理信息系统,用于协调和监控整个生产过程。它通过收集、分析和处理各种生产数据,实现对生产流程的实时跟踪和监控,并为决策者提供准确的数据支持。MES涵盖了工厂运营、计划排程、质量管理、设备维护…...
【Linux】分析hung_panic生成的vmcore
简介 1、遇到一个问题: 上述日志是oom_kill,下述日志是hung_panic 2、分别解释两层含义,全部日志如下: [75834.243209] kodo invoked oom-killer: gfp_mask0x600040(GFP_NOFS), order0, oom_score_adj968 [75834.245657] CPU: 0…...
unity 画线写字
效果 1.界面设置 2.涉及两个脚本UIDraw.cs和UIDrawLine.cs UIDraw.cs using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public class UIDraw : MonoBehaviour, IPointerEnterHandler, IPointerEx…...
GitHub的详细介绍
GitHub是一个面向开源及私有软件项目的托管平台,它建立在Git这个分布式版本控制系统之上,为开发者提供了在云端存储、管理和共享代码的便捷方式。以下是对GitHub的详细介绍: ### 一、GitHub的基本功能 1. **代码托管**:GitHub允…...
【鸿蒙学习】HarmonyOS应用开发者基础 - 构建更加丰富的页面之Tabs(三)
学完时间:2024年8月14日 一、前言叨叨 学习HarmonyOS的第六课,人数又成功的降了500名左右,到了3575人了。 本文接上一文章【鸿蒙学习】HarmonyOS应用开发者基础 - 构建更加丰富的页面(一),继续记录构建更…...
Detectron2 安装指南
文章目录 前言Detectron2官方文档官方指南 安装 Detectron2虚拟环境安装 PyTorch安装 Detectron2 总结 前言 Detectron2 是 Meta AI 的一个机器视觉相关的库,建立在 Detectron 和 maskrcnn-benchmark 基础之上,可以进行目标检测、语义分割、全景分割&am…...
亚马逊 Linux mysql5.7 安装纪录
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz cp /home/admin/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql #解压压缩包 tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 重命名mysql-…...
ZLMediaKit编译webrtc
ZLMediaKit官方文档写的挺详细的,但是也不算特别详细。 按照上面的文档,执行到cmake的时候,会提示“srtp 未找到, WebRTC 相关功能打开失败”,但是cmke还是可以继续啊。此时看文档说webrtc比较复杂,默认是不编译的&am…...
KEEPALIVED高可用集群最详解
目录 一、高可用集群 1.1 集群的类型 1.2 实现高可用 1.3 VRRP:Virtual Router Redundancy Protocol 1.3.1 VRRP相关术语 1.5.2 VRRP 相关技术 二、部署KEEPALIVED 2.1 keepalived 简介 2.2 Keepalived 架构 2.3 Keepalived 环境准备 2.3.1 实验环境 2…...
【大模型】llama-factory基础学习
前言:LLaMA-Factory项目的目标是整合主流的各种高效训练微调技术,适配市场主流开源模型,形成一个功能丰富,适配性好的训练框架。 目录 1. 前期准备2. 原始模型直接推理3. 自定义数据集4. 模型训练5. 模型合并并导出 1. 前期准备 …...
【Java】如何使用jdbc连接并操作MySQL,一文读懂不迷路,小白也能轻松学会
JDBC的原理 JDBC(Java Database Connectivity)是Java提供的用于连接和操作数据库的API。它允许Java应用程序与各种数据库进行交互,以下是JDBC的基本原理: 驱动程序管理:JDBC使用不同的数据库驱动程序来连接不同类型的…...
新手学习VR全景需要知道的几个问题
1.什么是720云 720云是一家专注于VR全景内容制作与展示的技术平台,提供从拍摄、编辑到发布的一站式解决方案。它的核心功能包括全景图像的制作和编辑工具,以及VR全景内容的在线展示和分享服务。720云的技术广泛应用于房地产、旅游、教育、文化展示等多个…...
石家庄便宜做网站/站长交流平台
漏洞扫描小工具写完后,我打算给其增加一个启动界面,此处借鉴于 https://blog.csdn.net/yy873259480/article/details/7411383 界面组成为图片进度条,代码如下: package vul_scan; import java.awt.Color; import java.awt.Toolki…...
wordpress 语言设置中文/郑州百度seo排名公司
我是一名即将毕业的计算机专业毕业生,大四的时候去一个软件公司实习(规模600人左右),做了一年的javaEE开发,实实在在地干活,也确实入了java的门,加上大学期间的学习,感觉对于java领域…...
微商的自己做网站叫什么名字/网站要怎么创建
如果要获取行,则需要从每个数组中获取值,然后根据值创建新数组。您可以手动分配值,也可以使用for循环,例如...int[][] MyMat {{0,1,2,3,4}, {9,8,7,6,5}};// get your columns... (easy)int[] My0 MyMat[0]; //My0 {0,1,2,3,4}i…...
莱芜话题 莱芜在线/长沙seo关键词排名
效果图 带描边的粒子效果 原图 承接上文 特效设...
本地wordpress 外网访问不了/百度收录网址
前言从智能单品到全屋智能,随着消费者对生活品质追求的提升,智能化产品逐渐走入大众家庭,从而推动智能家居市场蓬勃发展。从 2017 年开始,智能家居设备已经应用于日常生活各项任务。2017 年其市场规模约为 4.3 亿美元。据 IDC 预测…...