阶段十-分布式-nginx服务器

一、Nginx简介

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。tomcat并发数量理论值是500,实际也就300左右。

1.2 正向代理

正向代理代理的是客户端,帮客户端发送请求给目标服务器,服务器响应后,由代理服务器将响应内容返回给客户端。使客户端对目标服务器不可见。比较常见的用户场景就是翻墙。

1.3 反向代理

 反向代理在生产中应用还是比较多的,代理服务器代理目标服务器,负责收发请求,目标服务器对客户端来说是不可见的,不过客户端请求目标服务器和请求代理是一样的效果。比较常见的场景就是nginx的负载均衡

1.4 负载均衡

 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

1.5 动静分离

将网站的动态资源和静态资源分别部署到不同的服务器,并由nginx统一调用。

二、Nginx安装

【1】安装pcre依赖

1.下载压缩包:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
2.解压压缩包:tar -xvf pcre-8.37.tar.gz
3.安装gcc:yum install gcc
4.安装gcc:yum install -y gcc gcc-c++
5.在pcre-8.37目录输入:./configure 
6.在pcre-8.37目录输入:make && make install

【2】安装 openssl 、zlib 、 gcc 依赖

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

【3】安装nginx

1.将nginx压缩包上传到usr/local目录下
2.解压到当前目录:tar -xvf nginx-1.12.2.tar.gz
3.进入nginx-1.12.2目录输入:./configure
4.进入nginx-1.12.2目录输入:make && make install

【4】启动nginx

1.进入sbin目录:cd /usr/local/nginx/sbin
2.启动服务:./nginx 

【5】关闭防火墙

1.及时生效关闭防火墙: systemctl stop firewalld
2.重启永久生效:systemctl disable firewalld

【6】访问首页

自己虚拟机的ip

三、Nginx常用命令

必须保证先进入cd /usr/local/nginx/sbin 目录中即nginx目录中

【1】查看nginx版本号        ./nginx -v

【2】启动nginx        ./nginx

【3】停止nginx        ./nginx -s stop

【4】重新加载nginx        ./nginx -s reload

四、Nginx配置文件

Nginx配置文件的位置在: /usr/local/nginx/conf/nginx.conf

Nginx配置文件主要分为如下三部分

【1】全局块:配置服务器整体运行的配置指令

比如 worker_processes 1;处理并发数的配置

【2】events 块:影响 Nginx 服务器与用户的网络连接

比如 worker_connections 1024; 支持的最大连接数为 1024

【3】http 块包含两部分: http 全局块、server 块

五、Nginx反向代理配置案例

1.将windows系统的host文件进行域名和 ip 对应关系的配置

192.168.8.130    www.lsh.com

自己虚拟机的ip 

2.在 nginx 进行请求转发的配置(反向代理配置)

转发地址的路径支持正则表达式,见下面

5. Nginx中的正则表达式

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

2、~:用于表示 uri 包含正则表达式,并且区分大小写。

3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后, 立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

六、Nginx负载均衡

 【1】完成负载均衡配置

七、总结

【1】什么是nginx服务器,nginx服务器是干什么用的,你都用过哪些功能?

答:nginx是http服务器,也是反向代理服务器,可以做静态网站资源服务器,也可以做反向代理服务器。用过负均衡、反向代理、动静分离、http服务器等功能。

nginx并发是50000,tomcat(500是理论值)大概300左右。

【2】nginx的常用命令

答:./nginx 启动 ./nginx -v 查看版本 ./nginx -s stop 关闭 ./nginx -s reload 重新加载配置文件

【3】nginx如何配置静态服务

答:在/nginx/conf/nginx.conf中做如下配置

location /imgs/ {root /data/;autoindex on;
}
location /page/ {root /data/;autoindex on;
}

【4】如何配置反向代理

答:在/nginx/conf/nginx.conf做如下配置

location ~ /vod {proxy_pass http://127.0.0.1:8082;
}

反向代理支持表达式如下:

location [= | ~ | ~* | ^~] /uri{
​
}

【5】负载均衡配置

答:在nginx/conf/nginx.conf做如下配置

upstream mystream {server 127.0.0.1:8080 ;server 127.0.0.1:8081 ; 
}
location ~ /edu {proxy_pass http://mystream;
}

【6】什么是反向代理

答:正向代理代理的是客户端访问服务端,反向代理代理的是服务端,等待客户端访问代理服务。

具体配置

location ~ /edu {proxy_pass http://mystream;
}

【7】什么是动静分离

答:静态资源配置到nginx服务器中,动态资源通过nginx反向代理到tomcat。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【zookeeper选举源码分析】

文章目录 为什么要看源码: 1、提升技术功底:学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底 2、深度掌握技术框架:源码看多了,对于一个新…

【Matlab】LSTM长短期记忆神经网络时序预测算法

资源下载: https://download.csdn.net/download/vvoennvv/88688439 一,概述 LSTM(Long Short-Term Memory)是一种常用的循环神经网络(Recurrent Neural Network,RNN)结构,由于其对于…

决策树模型

决策书就是一种树状的模型,可以用来做分类和回归。这种分类方式很好理解,相当于分岔路一样,满足某一个条件就走对应的道路,然后抵达不同的终点。决策树有很多类型,基本的有ID3决策树,C4.5决策树&#xff0c…

自动驾驶论文

文章目录 一、Convolutional Social Pooling for Vehicle Trajectory Prediction二、QCNet:Query-Centric Trajectory Prediction三、VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation 一、Convolutional Social Pooling for Vehicl…

Mysql基础总结

一、MySql基础 MySQL常见面试题 一、索引相关 (1)什么是索引? 索引是一种数据结构,可以帮助我们快速的进行数据的查找。 (2)索引是个什么样的数据结构呢? 索引的数据结构和具体存储引擎的实现有关,…

vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果

一、实现效果 使用echarts实现省市地图绘制根据数据在地图显示柱状图根据数据显示数据,涟漪效果 二、实现方法 1、安装echarts插件 npm install echarts --save2、获取省市json数据 https://datav.aliyun.com/portal/school/atlas/area_selector 通过 阿里旗下…

Redis Cluster集群模式学习

Redis Cluster集群模式 Redis哨兵模式:https://blog.csdn.net/liwenyang1992/article/details/133956200 Redis Cluster集群模式示意图: Cluster模式是Redis3.0开始推出采用无中心结构,每个节点保存数据和整个集群状态,每个节点都…

人大金仓数据库与mysql比较

简介 人大金仓数据库是基于 PostgreSQL 开发的。 SQL语言 语法 关键字 KES: MYSQL: 语句 *特性MYSQLKES字符串字面量单引号()或 双引号(")十六进制字面量0x5461626c65,X5461626c65/BIT字面量b1000001,0b1000001/Boolean字面量常…

简洁、轻量级的 Go API 框架

本次分享的框架是「gin-api-mono」 介绍 gin-api-mono 前先了解 go-gin-api go-gin-api 这是一个基于 Gin 的 API 框架,它提供了 WEB 界面一键安装的方式,让你可以快速启动一个开箱即用的 Go 项目。无论你是否有项目经验,这个框架都适合作为练…

计算机基础面试题 |04.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

图像分割实战-系列教程8:unet医学细胞分割实战6(医学数据集、图像分割、语义分割、unet网络、代码逐行解读)

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 unet医学细胞分割实战1 unet医学细胞分割实战2 unet医学细胞分割实战3 unet医学细胞分割实战4 unet…

OpenCV-Python(21):OPenCV查找及绘制轮廓

1.认识轮廓 1.1 目标 理解什么是轮廓学习掌握找轮廓、绘制轮廓等学习使用cv2.findContours()、cv2.drawContours()函数的用法 1.2 什么是轮廓 在OpenCV中,轮廓是图像中连续的边界线的曲线,具有相同的颜色或者灰度,用于表示物体的形状。轮廓…