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
-
高性能:Nginx是一个高性能的HTTP和反向代理服务器,能够处理大量的并发连接和请求,适合高流量的网站。
-
高可靠性:Nginx使用事件驱动和异步处理方式,能够在保持高性能的同时,提供高可靠性的服务。
-
灵活性:Nginx支持多种配置方式,可以通过配置文件灵活地调整其行为,满足不同的需求。
-
扩展性:Nginx可以通过模块扩展其功能,支持负载均衡、缓存、SSL加密等多种功能。
-
低资源消耗:Nginx是一个轻量级的服务器,占用的系统资源较少,适合在资源有限的环境中部署。
-
跨平台:Nginx支持多种操作系统,包括Linux、Unix、MacOS等,具有很好的跨平台兼容性。
-
社区支持:Nginx有一个活跃的开源社区,提供了大量的文档、教程和模块,方便用户学习和使用。
-
安全性:Nginx提供了一些基本的安全功能,如防止DDoS攻击、防止SQL注入等,可以提高网站的安全性。
-
易于维护:Nginx的配置文件简单明了,易于理解和维护,降低了运维的难度。
-
支持多种协议: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: downloadhttps://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的美图资源,让网站内容看起来非常大气丰富,可以快速投入运营。 这个代码包,原网站已经稳定运营多年࿰…...
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 沉淀,…...
Web 3.0革新:社交金融与边玩边赚开启用户数据主权时代
目录 Web 3.0与社交商业模式 传统社交平台的问题 去中心化社交创新 Mirror:去中心化内容发布平台 Lens Protocol:去中心化社交图谱 Maskbook:隐私保护的社交方式 Web 3.0与与边玩边赚模式 经济模型解析 新商业模式的探索 Axie Infi…...
【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 中文分词模拟器(200分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…...
Cisco 路由重发布 —— 实现路由信息在不同路由域间的传递
一、技术背景 在实际的组网中,可能会遇到这样一个场景:在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备,使用 EIGRP 协议将网络的路由打通。但是后来网络扩容,增加了一批华为的设备&#…...
mysql8和mysql5版本在使用mybatis框架时的注意事项
mysql8和mysql5版本在使用mybatis框架时有些注意事项,两者的区别在于两处地方的设置。有一处未设置好,就会出现以下错误:java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Can…...
为什么要有指针和引用类型?
简单说,是为了必要的,且很基础的表达能力 (描述能力)。 0. 数据四要素:名、值、址、型 指针、引用的基础,就是在描述一个数据时,除了这个数据的“值”以外,引入了这个数据的“地址…...
vivado INTERNAL_VREF
内部 具有差分输入缓冲器的单端I/O标准需要输入参考 电压(VREF)。当I/O组中需要VREF时,您可以使用专用VREF 引脚作为外部VREF电源,或使用INTERNAL_VREF内部生成的VREF 属性,或者对于UltraScale设备上的HP I/O组&#x…...
VScode通过Graphviz插件和dot文件绘制层次图,导出svg
1、安装插件 在VScode中安装Graphviz Interactive Preview插件,参考。 2、创建dot文件 在本地创建一个后缀为dot的文件,如test.dot,并写入以下内容: digraph testGraph {label "层次图";node [shape square; widt…...
MMCV 核心组件分析(一):整体概述
概述 MMCV 是计算机视觉研究的基础库,并提供以下功能。...
阵列信号处理学习笔记(一)--阵列信号处理定义
阵列信号 阵列信号处理学习笔记(一)–阵列信号处理定义 阵列信号处理学习笔记(二)–空域滤波基本原理 文章目录 阵列信号前言一、阵列信号处理定义1.1 信号1.2 阵列 二、雷达数据中哪些属于空间采样总结 前言 MOOC 阵列信号处理…...
[HTML]一文掌握
背景知识 主流浏览器 浏览器是展示和运行网页的平台, 常见的五大浏览器有 IE浏览器、火狐浏览器(Firefox)、谷歌浏览器(Chrome)、Safari浏览器、欧朋浏览器(Opera) 渲染引擎 浏览器解析代码渲…...
ABAP使用SQL直接更新数据库与使用IN UPDATE TASK的区别
1. 背景 刚接触ABAP的小伙伴常常会有这样的疑问,为什么不直接使用Open SQL直接更新数据库,而要把对DB的操作封装到IN UPDATE TASK中呢? 对于这个问题,比较常见的解释是,IN UPDATE TASK的方式会保证数据更新的一致性。…...
贴吧网站建设/济南网络优化网站
C:\Users\this is user name\AppData\Roaming\Scooter Software\Beyond Compare 4 删除这个目录下所有文件(这个方法目前我试过可以的) 一劳永逸,修改注册表 1)在搜索栏中输入 regedit ,打开注册表 2) 删除项目:计算机\HKEY_CURRENT_USE…...
境外网站可以备案吗/今日头条关键词排名优化
在这篇文章中,我将带领大家详细学习ASP.NET Core 中的Main方法。在这篇文章中,我将向大家详细介绍下面几个问题: ASP.NET Core Main方法的重要性为什么我们在ASP.NET Core中会有一个Main方法?当你运行一个ASP.NET Core应用程序的时…...
福州网站建设设计/各种资源都有的搜索引擎
UNIAPP实战项目笔记60 前端使用token来验证是否已经登录 获取数据库中用户是否有token值,并存入 store.user.token中,有值代表已经登录 detail页面 通过验证token拦截未登录用户bin跳转到登录页面 实际案例图片 后端接口文件 index.js var express require(express); var rou…...
怎么建一个购物网站/网络营销最基本的应用方式是什么
1.什么是原子类 一度认为原子是不可分割的最小单位,故原子类可以认为其操作都是不可分割 1.1 为什么要有原子类? 对多线程访问同一个变量,我们需要加锁,而锁是比较消耗性能的,JDk1.5之后, 新增的原子操作类…...
百度小游戏入口/seo资料站
/*** Aspect : 是aspectj框架中的注解。* 作用:表示当前类是切面类。* 切面类:是用来给业务方法增加功能的类,在这个类中有切面的功能代码* 位置:在类定义的上面*/ Aspect public class MyAspect {/*** 定义方法&…...
安徽黄山网站建设/百度seo入驻
朋友们,如需转载请标明出处:http://blog.csdn.net/jiangjunshow 在大多数时候,你是没有足够的图像来训练深度神经网络的。本文将教你如何从小样本数据快速学习你的模型。 为什么我们关心小样本学习? 1980年, Kunihiko…...