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

Nginx详解(超级详细)

目录

Nginx简介

1. 为什么使用Nginx

2. 安装Nginx

Nginx的核心功能

1. Nginx反向代理功能

2. Nginx的负载均衡

3 Nginx动静分离


Nginx简介

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。并发能力: 50,000 

1. 为什么使用Nginx

  1. 高性能:Nginx是一个高性能的HTTP和反向代理服务器,能够处理大量的并发连接和请求,适合高流量的网站。

  2. 高可靠性:Nginx使用事件驱动和异步处理方式,能够在保持高性能的同时,提供高可靠性的服务。

  3. 灵活性:Nginx支持多种配置方式,可以通过配置文件灵活地调整其行为,满足不同的需求。

  4. 扩展性:Nginx可以通过模块扩展其功能,支持负载均衡、缓存、SSL加密等多种功能。

  5. 低资源消耗:Nginx是一个轻量级的服务器,占用的系统资源较少,适合在资源有限的环境中部署。

  6. 跨平台:Nginx支持多种操作系统,包括Linux、Unix、MacOS等,具有很好的跨平台兼容性。

  7. 社区支持:Nginx有一个活跃的开源社区,提供了大量的文档、教程和模块,方便用户学习和使用。

  8. 安全性:Nginx提供了一些基本的安全功能,如防止DDoS攻击、防止SQL注入等,可以提高网站的安全性。

  9. 易于维护:Nginx的配置文件简单明了,易于理解和维护,降低了运维的难度。

  10. 支持多种协议:Nginx不仅支持HTTP和HTTPS协议,还支持其他协议如SMTP、POP3等,可以作为多种服务的代理服务器。

2. 安装Nginx

nginx可以独立安装在一台服务器--也可以和项目在同一个服务器。

安装Nginx的依赖插件

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

下载nginx

源码。 编译---安装

nginx: downloadicon-default.png?t=N7T8https://nginx.org/en/download.html

 创建一个目录作为nginx的安装路径

mkdir /usr/nginx

 解压

 tar -zxvf nginx-1.26.1.tar.gz

 进入解压后的目录

 cd nginx-1.26.1

 指定nginx的安装路径

 ./configure --prefix=/usr/nginx

编译和安装 

nginx make install

nginx目录结构

启动nginx

nginx 启动

nginx -s stop 关闭

nginx -s reload 重新加载配置文件

访问nginx 80

http://nginx所在的ip:nginx的端口/

nginx配置文件

#user  nobody; 
#工作的线程数
worker_processes  1;
​
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
​
#pid        logs/nginx.pid;
​
​
events {# 每个工作对象允许的连接数worker_connections  1024;
}
​
​
http {include       mime.types;default_type  application/octet-stream;
​#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';
​#access_log  logs/access.log  main;
​sendfile        on;#tcp_nopush     on;
​#keepalive_timeout  0;keepalive_timeout  65;
​server {listen 81;server_name localhost;location /{root static;index main.html;}}
​#gzip  on;server {listen       80; # 监听的端口号server_name  localhost; # 监听的主机名.域名
​#charset koi8-r;
​#access_log  logs/host.access.log  main;
​
​# 资源/ location / {root   html; #根目录index  index.html main.html; # 资源}
​#error_page  404              /404.html;
​# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
​# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}
​# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}
​# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}
​
​# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;
​#    location / {#        root   html;#        index  index.html index.htm;#    }#}
​
​# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;
​#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;
​#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;
​#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;
​#    location / {#        root   html;#        index  index.html index.htm;#    }#}
​
}

Nginx的核心功能

1. Nginx反向代理功能

正向代理

代理的为客户端,对于服务器不知道真实客户的信息。例如:翻墙软件。

反向代理服务器

代理的为服务器端。对于客户来说不知道服务器的信息。例如: nginx

项目部署图

这是我的端口:

        准备web项目---103。

        准备nginx----101

启动web项目

配置nginx

 server {
       listen 82;
       server_name localhost;
       location /{
           # 代理的服务器地址
          proxy_pass   http://192.168.111.132:8080;
       }
    }
 

启动nginx

./opt/nginx/sbin/nginx

2. Nginx的负载均衡

负载均衡(Load Balance [4])其意思就是把请求分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

 web项目必须搭建的为集群模式。

web服务器项目至少搭建2台以上。192.168.111.132 8081 8082

nginx服务器

springboot项目

解压

java -jar xxx.jar

配置nginx完成负载均衡

重新加载nginx配置

/usr/nginx/sbin/nginx -s reload

测试

http://192.168.111.188:83/getInfo

负载均衡的策略

默认为轮询。

权重策略: 服务器硬件配置不同时。

ip_hash策略: 根据访问者客户的ip固定访问对应的web服务器。

花钱买第三方策略插件:

3 Nginx动静分离

动:动态资源[接口] 静:静态资源 [css js image]。

分离: 之前我们把静态资源和动态资源全部放在web服务器下。 把静态资源放入nginx服务器下。动态资源web服务器下

准备web项目

把静态资源放到nginx中

配置nginx

测试

下期写nginx的HA高可用的搭建 

相关文章:

Nginx详解(超级详细)

目录 Nginx简介 1. 为什么使用Nginx 2. 安装Nginx Nginx的核心功能 1. Nginx反向代理功能 2. Nginx的负载均衡 3 Nginx动静分离 Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协…...

postman使用旧版本报错version mismatch detected

卸载 postman又重装了别的版本,打开后遇到了这个报错,解决办法如下: 删除缓存文件 C:\Users\Administrator\AppData\Roaming\Postman 下载PostMan 提取码:6k51...

探索数据的隐藏维度:使用Scikit-Learn进行特征交互性预测

探索数据的隐藏维度:使用Scikit-Learn进行特征交互性预测 在机器学习中,特征交互性是指不同特征之间可能存在的复杂关系,这些关系对预测结果有着重要影响。Scikit-Learn(简称sklearn),作为Python中广受欢迎…...

首个WebAgent在线评测框架和流程数据管理平台来了,GPT-4、Qwen登顶闭源和开源榜首!

在当今科技迅速发展的时代,大型语言模型(Large Language Model,LLM)正以前所未有的速度改变着我们与数字世界的互动方式。基于LLM的智能代理(LLM Agent),从简单的信息搜索到复杂的网页操作&…...

UE TSharedPtr

文章目录 概述TSharedPtrTSharedPtr包含2部分 构造,析构,拷贝构造,移动构造构造拷贝构造移动构造 小结 概述 之前写过一篇c的智能指针的,这篇写下ue的。本质上来说是差不多的,可以简单看看。 TSharedPtr 如下图&…...

基于X86+FPGA+AI的远程医疗系统,支持12/13代 Intel Core处理器

工控主板:支持12/13代 Intel Core处理器,适用于远程医疗系统 顺应数字化、网络化、智能化发展趋势,国内医疗产业改革正在积极推进,远程医疗、智慧医疗等新模式新业态创新发展和应用,市场空间不断扩大,而基…...

微信小程序开发入门指南

文章目录 一、微信小程序简介二、微信小程序开发准备三、微信小程序开发框架四、微信小程序开发实例六、微信小程序开发进阶6.1 组件化开发6.2 API调用6.3 云开发 七、微信小程序开发注意事项7.1 遵守规范7.2 注意性能7.3 保护用户隐私 八、总结 大家好,今天将为大家…...

一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。

一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。 自带了5个多g的美图资源,让网站内容看起来非常大气丰富,可以快速投入运营。 这个代码包,原网站已经稳定运营多年&#xff0…...

MySQL:mysql的数据类型

MySQL 作为一个流行的关系型数据库管理系统,支持多种数据类型以满足不同的数据处理和存储需求。正确理解和使用这些数据类型对于提高数据库性能、确保数据完整性和准确性至关重要。 MySQL 数据类型 数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。…...

IPython魔法命令的深入应用

目录 IPython魔法命令的深入应用 一、魔法命令基础 1. 魔法命令的分类 2. 基本使用 二、高级应用技巧 1. 数据交互与处理 2. 交互式编程与调试 三、魔法命令的进阶操作 1. 自定义魔法命令 2. 利用魔法命令优化工作流程 四、总结与展望 IPython魔法命令的深入应用 IP…...

Yum包下载

1. 起因 内网有一台服务器需要升级php版本,维护的同学又不想二进制安装.服务器只有一个光盘的yum仓库 2. 解决方法 解决思路如下: 外网找一台机器配置php8.3.8的仓库外网服务器下载软件集并打包内网服务器上传并解压实现升级 2.1 下载php8.3.8仓库 配置php仓库 rootcent…...

数据结构代码

文章目录 线性表的插入线性表的删除单链表的建立栈的顺序存储队列的顺序存储串的顺序存储树的存储二叉树遍历前序遍历中序遍历后序遍历 二分法插入排序利用普里姆算法构造最小生成树 线性表的插入 #a: 列表,pos: 要插入的位置,key: 要插入的数据&#x…...

环信IM x 亚马逊云科技,助力出海企业实现可靠通讯服务

随着全球化进程的加速,越来越多的企业选择出海,拓展国际市场。然而,面对不同国家和地区的用户,企业在即时通讯方面遇到了诸多挑战。为了帮助企业克服这些困难,环信IM与亚马逊云科技强强联手,共同推出了一套…...

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D) 散点图示例解析效果 饼图示例解析效果 折线图示例解析效果 柱状图示例解析效果 箱线图示例解析效果 直方图示例解析效果 等高线图使用filled.contour函数示例…...

go中map

文章目录 Map简介哈希表与Map的概念Go语言内建的Map类型Map的声明Map的初始化Map的访问Map的添加和修改Map的删除Map的遍历 Map的基本使用Map的声明与初始化Map的访问与操作Map的删除Map的遍历Map的并发问题实现线程安全的Map 3. Map的访问与操作3.1 访问Map元素代码示例&#…...

02-用户画像-技术架构+业务划分

技术架构 python开发 es flume 流数据读取写入kafka文件 kafka 消息队列 sqoop 将数据导入数仓hive StructureStream 动态画像的处理 SparkSQL 静态画像的处理 ,批数据处理 读取kafka获取用户行为数据 fineBI 数据展示 业务划分 离线业务 静态画像 …...

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1

本来打算找到工作再整理高级的题库,但一直没什么面试机会。宅在家里也不知道干些什么。索性就把高级的题库整理出来了。也算有头有尾。高级的题库更新之后,专业性更强了,不是真正从事这一行的,很难做出来。本人就是个小菜鸡&#…...

敲详细的springboot中使用RabbitMQ的源码解析

这里介绍的源码主要是涉及springboot框架下的rabbitmq客户端代码(具体在springframework.amqp.rabbit包下,区分一下不由springboot直接接管的spring-rabbit的内容),springboot基于RabbitMQ的Java客户端建立了简便易用的框架。 sp…...

《Nginx核心技术》第04章:生成缩略图

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…...

Web 3.0革新:社交金融与边玩边赚开启用户数据主权时代

目录 Web 3.0与社交商业模式 传统社交平台的问题 去中心化社交创新 Mirror:去中心化内容发布平台 Lens Protocol:去中心化社交图谱 Maskbook:隐私保护的社交方式 Web 3.0与与边玩边赚模式 经济模型解析 新商业模式的探索 Axie Infi…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...