狂神说笔记——Nginx快速入门28

news2024/11/25 18:56:20

Nginx快速入门

在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。

在这里插入图片描述

  • 随着用户越来越多了,并发量慢慢增大了,此时一台服务器满足不了需求了。

在这里插入图片描述

  • 于是进行横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮开发者转发和处理请求。

在这里插入图片描述

  • 开发者希望这个代理服务器可以帮助开发者接收用户的请求,然后将用户的请求按照规则帮开发者转发到不同的服务器节点之上。这个过程用户是无感知的,用户并不知道是哪个服务器返回的结果,开发者还希望他可以按照服务器的性能提供不同的权重选择。保证最佳体验!所以需要使用Nginx。

1.什么是Nginx?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。

其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。

2.Nginx作用?

Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

  • 正向代理
    在这里插入图片描述

  • 反向代理
    在这里插入图片描述

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的。

  • 轮询
    在这里插入图片描述

  • 加权轮询
    在这里插入图片描述

  • iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
    在这里插入图片描述

动静分离,在日常的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,开发者就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。

在这里插入图片描述

目前,通过使用Nginx大大提高了网站的响应速度,优化了用户体验,让网站的健壮性更上一层楼!

3.Nginx的安装

1.windows下安装

1、下载nginx

  • http://nginx.org/en/download.html下载稳定版本。

  • 个人网盘地址链接:https://pan.baidu.com/s/1N2y01sWyxos34989csRQ9Q?pwd=y3zc

  • 以nginx/Windows-1.22.1为例,直接下载 nginx-1.22.1.zip。在这里插入图片描述

  • 下载后解压,解压后如下:在这里插入图片描述

2、启动nginx

  • 有很多种方法启动nginx;

  • (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。

  • (2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe,回车即可。在这里插入图片描述

3、检查nginx是否启动成功

  • 直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!在这里插入图片描述

4、配置监听

  • nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。在这里插入图片描述

  • 当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload 即可让改动生效。

5、关闭nginx

  • 如果使用cmd命令窗口启动nginx, 关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx。
  • (1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)。
  • (2)使用taskkill taskkill /f /t /im nginx.exe
taskkill是用来终止进程的。
/f是强制终止。
/t终止指定的进程和任何由此启动的子进程。
/im示指定的进程名称。

2.linux下安装

1、安装gcc

  • 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++

2、PCRE pcre-devel 安装

  • PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel

3、zlib 安装

  • zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel

4、OpenSSL 安装

  • OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
  • nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel

在这里插入图片描述

5、下载安装包

  • 手动下载.tar.gz安装包,地址:https://nginx.org/en/download.html

在这里插入图片描述

  • 个人网盘地址链接:https://pan.baidu.com/s/1TYloJ0Y5TvmOB5__0c__Ww?pwd=dxx3

  • 下载完毕上传到服务器上 /root。在这里插入图片描述

6、解压

tar -zxvf nginx-1.22.1.tar.gz
cd nginx-1.22.1/
ll

在这里插入图片描述

7、配置

  • 使用默认配置,在nginx根目录下执行。
./configure # 进行配置,目的是为了创建makefile文件
make	# make编译
make install # 安装

在这里插入图片描述

  • 查找安装路径: whereis nginx在这里插入图片描述

3.Nginx常用命令

cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程
  • 启动成功访问,服务器ip:80

在这里插入图片描述

报错nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)解决方法

  • 方法一

    fuser -k 80/tcp
    
    • 将进程杀死后,启动nginx。

    在这里插入图片描述

  • 方法二

    [root@localhost /]#ps -A | grep nginx 
    [root@localhost /]#kill -9 pid1
    [root@localhost /]#kill -9 pid2
    
    • 将进程杀死后,启动nginx。

  • 注意:如何连接不上,检查阿里云安全组是否开放端口,或者服务器防火墙是否开放端口
  • 相关命令:
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

4.演示

在这里插入图片描述
在这里插入图片描述

  • 主要是在server这里配置需要的即可。
  • 案例:
upstream lb{
    server 127.0.0.1:8080 weight=1;
    server 127.0.0.1:8081 weight=1;
}
location / {
    proxy_pass http://lb;
}

🎉结束🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VTK-路径规划

前言:本博文主要研究VTK中路径规划相关的内容,后期会持续更新路径规划相关的拓展应用,希望能给各位小伙伴一些帮助,也希望小伙伴们多多关注支持。 vtkGraphGeodesicPath 位置:..\Filter\Modeling 描述:路…

DDS 发送大数据

Sending Large DataThis section describes the capabilities offered by Connext DDS—specifically, RTI FlatData™ language binding and Zero Copy transfer over shared memory—that allow sending and receiving large data samples with minimum latency. In this sec…

Oracle 19c - 手动升级到 Non-CDB Oracle Database 19c 的完整核对清单 (Doc ID 2577572.1)

Oracle 19c - 手动升级到 Non-CDB Oracle Database 19c 的完整核对清单 (Doc ID 2577572.1)正在上传…重新上传取消To Bottom 文档内容 用途适用范围详细信息关于新的 Autoupgrade utility步骤 1: 升级到数据库 19c 的升级路径能够直接升级到 Oracle 19c 的数据库最小版本以下…

mongodb-18.聚合查询练习1

文章目录bulk writeaddFields增加field嵌套增加field覆盖显示用变量替换向数组中增加元素分组 bucket并行执行多个bucket$bucketAuto$count$document$facet1.使用Aggregation对象实现2.使用Aggregates实现$graphLookup 文档递归查询跨多文档递归$graphLookupbulk write db.piz…

第四十二讲:神州防火墙路由模式的初始配置

防火墙作为局域网的智能网关,处于内网和外网之间,必须工作在路由模式。路由模式下,防火墙上添加默认路由,配置SNAT转换,隐藏私有地址,内部用户正常访问外网。从安全考虑,内网处于trust区域&…

《2022年度ASA广告表现报告》生成,探索买量新高度!

回首 2022 年,ASA 广告的历程可以用“变化莫测”来形容,CPP 取代创意集、更新《广告指南》、上线新广告位等等,而这一系列改变,都在一定程度上影响着 ASA 广告的投放。一起来看看 2022 年度全球 ASA 广告的投放情况吧!…

日常使用的WhatsApp如何防止被封?

最近好多做外贸的朋友反映,自己手机号码注册的WhatsApp账号被封了,该如何将解封。首先我们先要了解为什么会被封?被封肯定是因为违反了WhatsApp条款和条件,但是具体如何违反的呢?我们一起来看看你没有这样做过&#xf…

【express】中间件

中间件(Middleware),特指业务流程的中间处理环节 1、调用流程 当一个请求到达Express的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理。 2、格式 Express的中间件,本质上就是一个functio…

repeat语句 及 赋值语句说明---verilog HDL

参考:verilog数字系统设计教程【第四版】夏宇闻 repeat语句用阻塞赋值语句,与用非阻塞语句产生的结果差别非常大,所以将二者放在同一篇文章中。 1、赋值语句 2、repeat 语句介绍   2.1、用法要点   2.2、代码举例    代码1:…

2023年北向L2接口的发展会怎么样?

众所周知北向L2接口的逐笔成交功能可以精确查看每笔成交,跟踪北向资金动向,那么由于北向资金动向是股市行情的晴雨表,因此股民做股票投资是要时刻关注着北向资金流动方向的,那么北向L2接口作为帮助头者提供跟踪资金动向的服务软件…

浅谈撮合引擎

浅谈撮合引擎设计撮合引擎简介撮合引擎的发展币安中小型交易所小型交易所业务交易流程竞价方式交易所常用指令开发简易架构设计撮数据结构设计交易委托账本限价委托单其它委托单关键代码实现1.创建一个ringbuffer2. 设置事件监听4.订单撮合主逻辑撮合分支processMath函数逻辑PS…

uniapp实现iOS支付苹果内购支付踩过的坑以及具体操作步骤

由于我们app会员属于虚拟产品,所以苹果商店要求我们必须选择苹果内购,否则就勒令下架。 无奈,于是就又开始了踩坑之旅~ uniapp可以直接使用uni-pay的插件去进行苹果内购。 但是,在对接自己的项目之前,建议先跑通示例项…

JavaEE-Spring(Spring中的五大类注解,@Bean注解,对象装配(@Autowired,@Resource),Bean对象在Spring中的作用域)

文章目录1. 配置扫描路径2. Spring五大类注解3. Spring Bean注解对象装配4. Bean对象在Spring中的作用域5. Bean生命周期1. 配置扫描路径 只有设置了扫描路径&#xff0c;其他的路径下注解不会被Spring扫描 这里设置路径为com.beans下 <?xml version"1.0" enc…

(七)devops持续集成开发——jenkins流水线发布一个node环境下的前端vue项目

前言 在前面的章节中已经介绍了jenkins集成前端流水化部署环境的内容&#xff0c;本节内容是关于前端项目的流水化部署发布&#xff0c;通过实操发布一个前端项目&#xff0c;从而完成前端项目的流水化发布。前端项目主要是静态资源的发布&#xff0c;这里我们以一个vue项目为…

智慧物流信息化供应链管理体系转型发展现状

现如今&#xff0c;伴随着时代的迅速发展和高新科技水准的持续提升&#xff0c;人们慢慢进入了信息时代。在其中&#xff0c;物流制造行业也从以往20年前的粗放型管理机制慢慢变化为信息化、智慧化的管理机制。 5G、云计算技术、AI、物联网等新技术的出现加快了各个领域经营方法…

k线图中的三条线是什么?

新手投资朋友可能会在行情软件中发现&#xff0c;图表中除了K线以外&#xff0c;其下方还有三条颜色不一样的曲线&#xff0c;到底这三条线有什么功能呢&#xff1f;它们的使用方法又是怎样的呢&#xff1f; 其实&#xff0c;这三条线分别是短、中、长周期移动平均线&#xff0…

界面控件DevExpress WinForm——属于WinForm组件的MVVM框架

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

谷粒学院——Day17【数据同步工具、SpringCloud【GateWay网关】、权限管理功能(接口)】

❤ 作者主页&#xff1a;Java技术一点通的博客 ❀ 个人介绍&#xff1a;大家好&#xff0c;我是Java技术一点通&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 记得关注、点赞、收藏、评论⭐️⭐️⭐️ &#x1f4e3; 认真学习&#xff0c;共同进步&#xff01;&am…

sql调优

一、MySQL架构总览&#xff1a; 三、SQL解析顺序 SELECT DISTINCT< select_list > FROM< left_table > < join_type > JOIN < right_table > ON < join_condition > WHERE< where_condition > GROUP BY< group_by_list > HAVING<…

振弦采集模块的频率值与温度值的修正

振弦采集模块的频率值与温度值的修正 此功能在 SF3.51 版本时增加。 固件版本 V3.51 修改固件版本号为 V3.51_2200827。 增加了频率和温度的多项式修正参数和对应指令。 $STFP、 $GTFP、 $STTP、 $GTTP 增加了 FFT 频幅数据输出功能。设置 ATSD_SEL.[5]为 1。 修正了 VM608 采集…