个人博客网:https://wushaopei.github.io/ (你想要这里多有)
Nginx 简介:
1、介绍 nginx 的应用场景和具体可以做什么事情
2、介绍什么是反向代理
3、介绍什么是负载均衡
4、介绍什么是动静分离
一、Nginx 简介
1、Nginx 概述
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。中国大陆使用 nginx的网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
2、Nginx 作为 web 服务器
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
https://lnmp.org/nginx.html
3、正向代理
Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。
正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理
例:网络上有google这样一个网站,实际访问时用户不直接对google网站进行访问,因为google是一个资源的存在,我们必须通过代理服务器去调用或请求来使用该资源。
情景:在一个局域网中,只有一台计算机可以接入互联网。其他计算机通过这台计算机间接接入互联网。
这里的代理: 多个用户请求同一个或多个相同网络资源时进行代理。
4、反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
例: 如atguigu.com下有多个站点,我们在进行访问时直接访问www.atguigu.com网站,每一个如java、大数据、php这种类目的子域名的实际ip地址可能被进行隐藏,我们只能通过www.atguigu.com进行访问,由atguigu为我们进行代理请求并返回相应结果。而我们无法知道具体指向的真实服务器IP地址。
情景:在一个局域网中,一台计算机可以接入互联网。其他服务器通过互联网为该计算机提供资源服务等。
这里的代理:一个用户请求多个不同的网络资源时进行代理,由代理服务器根据请求的资源不同指向不同的提供资源的服务器。(隐藏资源提供者ip,暴露代理人的ip)
5、负载均衡
客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。
这种架构模式对于早期的系统相对单一,并发请求相对较少的情况下是比较适合的,成本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?
我们首先想到的可能是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能满足日益提升的需求了。最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能够满足需求的。那么怎么办呢?
上面的分析我们去掉了增加服务器物理配置来解决问题的办法,也就是说纵向解决问题的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
6、动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
二、Nginx 安装
1、进入nginx 官网,下载:
http://nginx.org/
需要下载的相关安装包:
2、安装 nginx
(1)安装 pcre 依赖
第一步 联网下载 pcre 压缩文件依赖
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
第二步 解压压缩文件
使用命令 tar –xvf pcre-8.37.tar.gz
第三步./configure 完成后,回到 pcre 目录下执行 make,最后执行 make install
(2)安装 openssl 、zlib 、 gcc 依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
(3)安装 nginx
- 使用命令解压
- ./configure
- make && make install
进入目录 /usr/local/nginx/sbin/nginx 启动服务
在 windows 系统中访问 linux 中 nginx,默认不能访问的,因为防火墙问题
(1)关闭防火墙
(2)开放访问的端口号,80 端口
查看开放的端口号
firewall-cmd --list-all
设置开放的端口号
firewall-cmd --add-service=http –permanentfirewall-cmd --add-port=80/tcp --permanent
重启防火墙
firewall-cmd –reload